Ich versuche, meine Eingabeaufforderung im Terminal zu ändern. Ich bekomme immer den Fehler:
-bash: __git_ps1: command not found
Ich habe es versucht, indem ich es wie folgt in das Terminal eingetippt habe: __git_ps1
. Ich habe es auch im .bash_profile
ausprobiert
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 es funktioniert großartig!
Ich bin auf diese Frage gestoßen: " PS1 env variable funktioniert nicht auf mac ", was den Code angibt
alias __git_ps1="git branch 2>/dev/null | grep '*' | sed 's/* \(.*\)/(\1)/'"
Also füge ich es meinem .bash_profile
hinzu in der Hoffnung, dass es etwas ändert. Nun, das hat es getan. Es wurde nur die Fehlerausgabe geändert.
Hier ist der .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 hier ist die geänderte Fehlerausgabe:
sed: (%s): No such file or directory
Hinweis:Ich habe den Alias auch 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 auf keinen Fall selbst definieren, sondern wollte nur herausfinden, 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
Ein ls -la
listet dann die .git-completion.bash
-Datei auf.
Bearbeiten 13.10.12 - Gelöst von Mark Longair (unten)
Der folgende Code funktionierte für mich im .bash_profile
, während andere es nicht taten ...
if [ -f ~/.git-Prompt.sh ]; then
source ~/.git-Prompt.sh
export PS1='Geoff[\W]$(__git_ps1 "(%s)"): '
fi
Sie haben die Version von git-completion.bash
von master
installiert - in gits Entwicklungsgeschichte ist dies nach einem Commit, das die Funktion __git_ps1
von der Vervollständigungsfunktion in eine neue Datei (git-Prompt.sh
) aufteilt. Das Commit, das diese Änderung eingeführt hat und die die Gründe dafür erklärt, lautet af31a456 .
Ich würde trotzdem vorschlagen, dass Sie nur die Version von git-completion.bash
(oder git-Prompt.sh
) beziehen, die mit Ihrer Installation von git mitgeliefert wird.
Wenn Sie diese Funktion jedoch aus irgendeinem Grund weiterhin verwenden möchten, indem Sie separat von master
heruntergeladene Skripts verwenden, sollten Sie git-Prompt.sh
in ähnlicher Weise herunterladen:
curl -o ~/.git-Prompt.sh \
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-Prompt.sh
... und fügen Sie Ihrem ~/.bash_profile
die folgende Zeile hinzu:
source ~/.git-Prompt.sh
Dann sollte Ihre PS1
-Variable, die __git_ps1 '%s'
enthält, einwandfrei funktionieren.
Nach dem Upgrade auf OSX 10.9 Mavericks musste ich die folgenden Dateien referenzieren, um den Abschluss des git Shell-Befehls und git Prompt wieder funktionsfähig zu machen.
Von meinem .bash_profile oder ähnlich:
if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash ]; then
. /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-completion.bash
fi
source /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-Prompt.sh
#Shell Prompt example
PS1='\u $(__git_ps1 "(%s)")\$ '
Du solltest
$ brew install bash bash-completion git
Dann geben Sie "$ (brew --prefix)/etc/bash_completion" in Ihre .bashrc ein.
Folgendes hat für mich wie ein Zauber gearbeitet:
Führen Sie folgendes in Ihrem Terminal aus:
curl -L https://raw.github.com/git/git/master/contrib/completion/git-Prompt.sh > ~/.bash_git
Bash_profile öffnen/erstellen:
$ vi ~/.bash_profile
Fügen Sie der Datei Folgendes hinzu:
source ~/.bash_git
export PS1='\[\033[01;32m\]os \[\033[01;34m\]\w $(__git_ps1 "[%s]")\$\[\033[00m\] '
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"
Zum Schluss beschriften Sie es mit:
$ source ~/.bash_profile
Dies löst das Problem von bash: __git_ps1: command not found
.
Ihre Eingabeaufforderung ändert sich auch in "os". Um "os" in etwas anderes zu ändern, ändern Sie die Zeichenfolge "os" in der PS1-Exportzeile.
Laden Sie das git-Paket über den Browser herunter https://git-scm.com/download/
Hinweis: Wenn Sie mit der curl [option] https://...
-Option zum Herunterladen installieren, müssen Sie sicherstellen, dass Ihr System SSL unterstützt. Für Neuankömmlinge ist das Herunterladen vom Browser und die direkte Installation von git installer viel einfacher.
which git
git --version
Die aktuelle Version sollte 2.10.1 sein. nano ~/.bash_profile
oder nano ~/.bashrc
Abhängig davon, wo sich Ihre Änderung befindet.source /usr/local/git/contrib/completion/git-completion.bash
source /usr/local/git/contrib/completion/git-Prompt.sh
Hinweis: Das Installationsverzeichnis von git wurde nach dem OSX-Upgrade auf El Capitain von opt/verzeichnis in usr/local/geändert. Aus diesem Grund funktionieren einige der obigen Antworten in MacOS Sierra nicht mehr.
Fügen Sie der PS1-Konfiguration den folgenden Code hinzu:
Option 1: direkt zu deiner PS1 hinzufügen: export PS1='\w$(__git_ps1 "(%s)") > '
.git-completion.bash
in meinem Home-Verzeichnis vorhanden ist, und ich kann ein anderes Prompt-Format im Vordergrund hinzufügen. Hier ist meine persönliche Aufforderung für Ihre Referenz: export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
Option 2: Fügen Sie ein Auswahlskript hinzu
wenn [-f ~/.git-completion.bash]; dann export PS1 = '\ w $ (__ git_ps1 "(% s)")>' fi
Speichern und verwenden Sie das Profil: source ~/.bash_profile
oder source ~/.bashrc
Ich hatte das gleiche Problem beim Upgrade auf Yosemite.
Ich musste nur ~/.bashrc
in source /usr/local/etc/bash_completion.d/git-Prompt.sh
anstelle des alten Pfads ändern.
quellen Sie dann Ihren . ~/.bashrc
neu, um den Effekt zu erhalten.
__git_ps1 für bash ist jetzt in git-Prompt.sh in /usr/local/etc/bash_completion.d auf meiner Brew-installierten Git-Version 1.8.1.5 zu finden
High Sierra saubere Lösung mit Farben!
Keine Downloads Kein Gebräu Kein Xcode
Fügen Sie es einfach zu Ihrem ~/.bashrc oder ~/.bash_profile hinzu
export CLICOLOR=1
[ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-Prompt.sh ] && . /Library/Developer/CommandLineTools/usr/share/git-core/git-Prompt.sh
export GIT_PS1_SHOWCOLORHINTS=1
export GIT_PS1_SHOWDIRTYSTATE=1
export GIT_PS1_SHOWUPSTREAM="auto"
Prompt_COMMAND='__git_ps1 "\h:\W \u" "\\\$ "'
Wenn Sie mit Homebrew ein Upgrade für Git durchführen möchten und Ihr System generell veraltet werden lassen (wie ich es tat), müssen Sie möglicherweise zuerst Homebrew selbst auf den neuesten Stand bringen (wie in Brüh-Update: Die folgenden untracked Working Tree-Dateien würden durch Zusammenführen überschrieben: thanks @ chris-frisina)
Bringen Sie zuerst Homebrew mit der aktuellen Version in Einklang
cd/usr/local
git holen Origin ab
git reset --hard Origin/Master
Dann Update Git:
brauen Sie Upgrade-Git
Problem gelöst! ;-)
dies funktioniert in OS 10.8 im .bash_profile
if [ -f ~/.git-Prompt.sh ]; then
source ~/.git-Prompt.sh
export PS1='YOURNAME[\W]$(__git_ps1 "(%s)"): '
fi
Zumindest mit Xcode 6 haben Sie git-completion.bash
bereits. Es ist im Xcode-App-Paket enthalten.
Fügen Sie dies einfach zu Ihrem .bashrc hinzu:
source `xcode-select -p`/usr/share/git-core/git-completion.bash
Für Macports musste ich source /opt/local/share/git-core/git-Prompt.sh
zu meinem ./profil hinzufügen
Fügen Sie die Quelldatei dem Bash-Profil hinzu
source ~/git-completion0.bash
source ~/git-Prompt0.sh
and four to trigger the code block.
Ich weiß, dass es keine echte Antwort ist ...
Ich hatte einige seltsame Probleme mit der Beschaffung von git-Prompt.sh in meinem .bashrc, also fing ich an, nach einer anderen Lösung zu suchen. Dieses: http://www.jqno.nl/post/2012/04/02/wie-Display-der-current-git-branch-in-your-Prompt/ verwendet nicht __git_ps1 und Autor behauptet, dass es auch auf dem Mac funktioniert (im Moment funktioniert es perfekt auf meinem Ubuntu und es ist leicht zu Tweak).
Ich hoffe, es hilft!
Ich habe den Kurs zu Udacity für Git Hub gemacht und hatte das gleiche Problem. Hier ist mein endgültiger Code, der dafür sorgt, dass korrekt funktioniert.
# Change command Prompt
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
source ~/.git-Prompt.sh
export GIT_PS1_SHOWDIRTYSTATE=1
# '\u' adds the name of the current user to the Prompt
# '\$(__git_ps1)' adds git-related stuff
# '\W' adds the name of the current directory
export PS1="$purple\u$green\$(__git_ps1)$blue \W $ $reset"
Es funktioniert! https://i.stack.imgur.com/d0lvb.jpg
Für git gibt es /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-Prompt.sh
. Und bitte auch /etc/bashrc_Apple_Terminal
suchen.
Also habe ich diese in ~/.bash_profile
eingefügt:
if [ -f /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-Prompt.sh ]; then
. /Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-Prompt.sh
export GIT_PS1_SHOWCOLORHINTS=1
export GIT_PS1_SHOWDIRTYSTATE=1
Prompt_COMMAND="${Prompt_COMMAND:+$Prompt_COMMAND; }__git_ps1 '\u:\w' '\\\$ '"
fi
Dieser hat für mich funktioniert, und es hat farbige Git-Ausgabe und einen Indikator in der Eingabeaufforderung, ob Dateien geändert wurden/hinzugefügt wurden, richtig eingebettet:
GIT_PS1_SHOWDIRTYSTATE=true
. /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-completion.bash
. /usr/local/Cellar/git/1.8.5.2/etc/bash_completion.d/git-Prompt.sh
PS1='\[\033[32m\]\[email protected]\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '
Achten Sie darauf, den richtigen Pfad zu verwenden! Ich habe Homebrew verwendet, um git zu installieren. Benutze brew list git
, um den Pfad zu deiner aktuellen Installation zu erhalten.
Es wäre schön, wenn Sie keinen hart codierten Pfad verwenden, wissen aber nicht, wie Sie den Pfad zur aktuellen Installation erhalten.
Weitere Infos hier: http://de.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-Prompt/