Ich versuche, meine Eingabeaufforderung im Terminal zu ändern. Ich bekomme immer wieder den Fehler:
-bash: __git_ps1: command not found
Ich habe es versucht, indem ich es wie folgt in das Terminal eingegeben habe : __git_ps1. Ich habe es auch in der ausprobiert.bash_profile
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Wie Sie vielleicht sehen / sagen können, habe ich die automatische Vervollständigung installiert und sie funktioniert hervorragend!
Ich bin auf diese Frage gestoßen : " PS1 env-Variable funktioniert nicht auf Mac ", die den Code gibt
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Also füge ich es meiner .bash_profileHoffnung hinzu, dass es etwas ändern wird. Nun, das hat es getan. Es hat nur die Fehlerausgabe geändert.
Hier ist das .bash_profilemit dem Zusatz:
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
export PS1='[\W]$(__git_ps1 "(%s)"): '
fi
Und jetzt ist hier die geänderte Fehlerausgabe:
sed: (%s): No such file or directory
Hinweis: Ich habe auch den Alias ohne Unterschied unter die Quelle verschoben. Ich habe Git Version 1.7.12.1
Dies sollte eine einfache Änderung sein. Kann mir bitte jemand helfen?
Bearbeiten 13.10.12
Nein, ich möchte __git_ps1 definitiv nicht selbst definieren, sondern habe nur versucht zu sehen, ob es dadurch erkannt wird. Ja, ich habe die .git-completion.bashDatei installiert. So habe ich die automatische Vervollständigung auf meinem Computer erhalten.
cd ~
curl -OL https://github.com/git/git/raw/master/contrib/completion/git-completion.bash
mv ~/git.completion.bash ~/.git-completion.bash
A ls -lalistet dann die .git-completion.bashDatei auf.
Edit 13.10.12 - Gelöst von Mark Longair (unten)
Der folgende Code hat bei mir funktioniert, .bash_profilewährend andere nicht ...
if [ -f ~/.git-prompt.sh ]; then
source ~/.git-prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
git <tab>wie in dem von Mark Longair referenzierten Commit angegeben.
git-completion.bashdefiniert__git_ps1als Shell-Funktion. Ist deins? Woher wissen Sie, dass die Fertigstellung funktioniert? Was passiert, wenn Siegit h<TAB> eingeben?