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_profile
Hoffnung hinzu, dass es etwas ändern wird. Nun, das hat es getan. Es hat nur die Fehlerausgabe geändert.
Hier ist das .bash_profile
mit 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.bash
Datei 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 -la
listet dann die .git-completion.bash
Datei auf.
Edit 13.10.12 - Gelöst von Mark Longair (unten)
Der folgende Code hat bei mir funktioniert, .bash_profile
wä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.bash
definiert__git_ps1
als Shell-Funktion. Ist deins? Woher wissen Sie, dass die Fertigstellung funktioniert? Was passiert, wenn Siegit h
<TAB> eingeben?