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-completion.bash
definiert__git_ps1
als Shell-Funktion. Ist deins? Woher wissen Sie, dass die Fertigstellung funktioniert? Was passiert, wenn Siegit h
<TAB> eingeben?git <tab>
wie in dem von Mark Longair referenzierten Commit angegeben.Antworten:
Sie haben die Version von
git-completion.bash
from installiertmaster
- im Entwicklungsverlauf von git erfolgt dies nach einem Commit, bei dem die__git_ps1
Funktion von der Abschlussfunktion in eine neue Datei (git-prompt.sh
) aufgeteilt wurde. Das Commit, das diese Änderung eingeführt hat und das die Gründe erklärt, ist af31a456 .Ich würde immer noch vorschlagen, dass Sie nur die Version von
git-completion.bash
(odergit-prompt.sh
) beziehen, die mit Ihrer Installation von git gebündelt ist.Wenn Sie diese Funktionalität jedoch aus irgendeinem Grund weiterhin mithilfe von Skripten verwenden möchten, die separat von heruntergeladen wurden
master
, sollten Sie Folgendes herunterladengit-prompt.sh
:... und fügen Sie die folgende Zeile hinzu
~/.bash_profile
:Dann sollte Ihre
PS1
Variable, die enthält, gut__git_ps1 '%s'
funktionieren.quelle
git-prompt.sh
undgit-completion.bash
in`brew --prefix git`/etc/bash_completion.d/
.git-core
durch ersetzt wurdegit
. Siehe diese FrageNach dem Upgrade auf OSX 10.9 Mavericks musste ich auf die folgenden Dateien verweisen, um den Abschluss des Git-Shell-Befehls und die Git-Eingabeaufforderung zu erhalten.
Aus meinem .bash_profile oder ähnlichem:
quelle
~/.git_prompt.sh
. Die anderen Lösungen haben nicht funktioniert.bash: __docker_machine_ps1: command not found
Du solltest
$ Brew Bash installieren Bash-Completion Git
Geben Sie dann "$ (Brew - Präfix) / etc / bash_completion" in Ihre .bashrc ein.
quelle
Folgendes hat für mich wie ein Zauber gewirkt:
Führen Sie in Ihrem Terminal Folgendes aus:
Öffnen / Erstellen von bash_profile:
Fügen Sie der Datei Folgendes hinzu:
Schließlich beschaffen Sie es mit:
Dies wird das Problem von lösen
bash: __git_ps1: command not found
.Auch Ihre Eingabeaufforderung ändert sich in "os". Um "os" in etwas anderes zu ändern, ändern Sie die Zeichenfolge "os" in der PS1-Exportzeile.
quelle
Lösung für MacOS Sierra und Git Version 2.10.1 <2017-2-06>
Schritt 1: Installieren Sie den Git
Sie können diesen Schritt überspringen, wenn Sie bereits das neueste Git installiert haben.
Hinweis: Wenn Sie mit der
Installationsüberprüfung:curl [option] https://...
Option zum Herunterladen installieren , müssen Sie sicherstellen, dass Ihr System SSL unterstützt. Für Neueinsteiger ist es daher viel einfacher, vom Browser herunterzuladen und direkt vom Git-Installationsprogramm zu installieren.which git
git --version
aktuelle Version sollte 2.10.1 sein.Schritt 2: Fügen Sie Ihr Git-Profil zu Ihrer Shell hinzu
nano ~/.bash_profile
odernano ~/.bashrc
Hängt davon ab, wo sich Ihre Änderung befindet.source /usr/local/git/contrib/completion/git-completion.bash
source /usr/local/git/contrib/completion/git-prompt.sh
Hinweis: Der Installationsort von git wurde nach dem OSX-Upgrade auf El Capitain von opt / directory in usr / local / geändert. Aus diesem Grund funktionieren einige der alten Antworten in MacOS Sierra nicht mehr.
Füge deiner PS1-Konfiguration den folgenden Code hinzu:
Option 1: direkt zu deiner PS1 hinzufügen:
Ich bevorzuge diesen einfachen Ansatz, da ich bereits weiß, dass sich dasexport PS1='\w$(__git_ps1 "(%s)") > '
.git-completion.bash
in meinem Home-Verzeichnis befindet, und ich kann ein anderes Eingabeaufforderungsformat davor hinzufügen. Hier ist meine persönliche Eingabeaufforderung für Ihre Referenz:export PS1='\t H#\! \u:\w$(__git_ps1 "{%s}") -->> '
Option 2: Fügen Sie ein Auswahlskript hinzu
Speichern und verwenden Sie das Profil:
source ~/.bash_profile
odersource ~/.bashrc
quelle
Ich hatte das gleiche Problem beim Upgrade auf Yosemite.
Ich musste nur
~/.bashrc
aufsource /usr/local/etc/bash_completion.d/git-prompt.sh
anstelle des alten Pfades ändern .Geben Sie dann eine neue Quelle ein
. ~/.bashrc
, um den Effekt zu erzielen.quelle
High Sierra saubere Lösung mit Farben!
Keine Downloads. Kein Gebräu. Kein Xcode
Fügen Sie es einfach Ihrem ~ / .bashrc oder ~ / .bash_profile hinzu
quelle
__git_ps1 für bash befindet sich jetzt in git-prompt.sh in /usr/local/etc/bash_completion.d auf meiner von Brew installierten Git-Version 1.8.1.5
quelle
Dies funktioniert unter OS 10.8 im .bash_profile
quelle
Für Macports musste ich hinzufügen:
source /opt/local/share/git-core/git-prompt.sh
zu meinem ./profilequelle
touch ~/.profile
. Aber Sie brauchen offensichtlich eine Datei in: /opt/local/share/git-core/git-prompt.shWenn Sie hoffen, mit Homebrew Git zu aktualisieren, und Ihr System generell veraltet ist (wie ich), müssen Sie möglicherweise Homebrew selbst zuerst auf den neuesten Stand bringen (gemäß Brew-Update) : Die folgenden nicht verfolgten Arbeitsbaumdateien würden durch Zusammenführen überschrieben: danke @ chris-frisina)
Bringen Sie Homebrew zuerst mit der aktuellen Version in Einklang
Dann aktualisiere Git:
Problem gelöst! ;-);
quelle
Zumindest mit Xcode 6 haben Sie bereits
git-completion.bash
. Es befindet sich im Xcode-App-Bundle.Fügen Sie dies einfach Ihrer .bashrc hinzu:
quelle
Fügen Sie die Quelldatei zum .bash_profile hinzu
quelle
Ich weiß, dass es keine echte Antwort ist ...
Ich hatte einige seltsame Probleme mit der Beschaffung von git-prompt.sh in meiner .bashrc, also fing ich an, nach einer anderen Lösung zu suchen. Dieser: http://www.jqno.nl/post/2012/04/02/howto-display-the-current-git-branch-in-your-prompt/ verwendet __git_ps1 nicht und der Autor behauptet, dass es auch funktioniert auf dem Mac (im Moment funktioniert es perfekt auf meinem Ubuntu und es ist einfach zu optimieren).
Ich hoffe, es hilft!
quelle
Ich habe den Kurs über Udacity für Git Hub gemacht und hatte das gleiche Problem. Hier ist mein endgültiger Code, mit dem make korrekt funktioniert.
Es klappt! https://i.stack.imgur.com/d0lvb.jpg
quelle
Dieser hat für mich funktioniert, und er hat eine farbige Git-Ausgabe und einen Indikator in der Eingabeaufforderung, ob Dateien geändert / hinzugefügt wurden, direkt eingebrannt:
Achten Sie darauf, den richtigen Pfad zu verwenden! Ich habe Homebrew verwendet, um Git zu installieren
brew list git
und den Pfad zu Ihrer aktuellen Installation zu ermitteln.Es wäre schön, keinen fest codierten Pfad zu verwenden, aber ich weiß nicht, wie ich den Pfad zur aktuellen Installation erhalten soll.
Weitere Infos hier: http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/
quelle
Für Git gibt es
/Applications/Xcode.app/Contents/Developer/usr/share/git-core/git-prompt.sh
. Und bitte schauen Sie/etc/bashrc_Apple_Terminal
auch.Also habe ich diese eingegeben
~/.bash_profile
:quelle
bash: __docker_machine_ps1: command not found
Vorwort: Tut mir leid, dass ich die Antwort von haysclark nicht kommentiert und eine neue gemacht habe, einfach nicht genug Wiederholung.
Bitte nicht, wenn Sie git nicht über Xcode oder Home-Brew installiert haben, werden Sie wahrscheinlich die Bash-Skripte finden, auf die sich haysclarks bezieht
/Library/Developer/CommandLineTools/
, und nicht in/Applications/Xcode.app/Contents/Developer/
, wodurch die Zeilen in .bashrc wie folgt aufgenommen werden:Sie benötigen diese Zeilen, wenn Sie auch git-prompt verwenden möchten.
quelle