Ich bin http://blog.bitfluent.com/post/27983389/git-utilities-you-cant-live- gefolgt git-completion.bash
, ohne meinen hinzuzufügen/opt/local/etc/bash_completion.d/git-completion
und ich habe PS1='\h:\W$(__git_ps1 "(%s)") \u\$ '
mein .bashrc_profile eingetragen
Aber jetzt bekomme ich das -bash: __git_ps1: command not found
alles , was ich tue cd
.
Kannst du mir bitte sagen, was ich vermisse?
Antworten:
Ich habe git mit MacPorts auf meiner neuen Snow Leopard-Installation installiert. Nach der Installation von MacPorts über das .dmg-Image sind dies die Befehle in Terminal.app:
Wenn Sie auch das Abrufen von SVN-Repositorys und -Dokumenten unterstützen möchten, verwenden Sie dies anstelle der zweiten Zeile:
Fügen Sie dann Folgendes zu Ihrem ~ / .profile oder ~ / .bash_profile hinzu:
oder für MacPorts seit Version 2.1.2 auf Mountain Lion:
oder für MacPorts mit neueren Versionen von git:
Hinweis: bash 4.1 oder höher wird von bash_completion.sh benötigt. Wenn die Fertigstellung nicht funktioniert, versuchen Sie
echo $BASH_VERSION
, festzustellen, ob dies das Problem ist. Geben Sie in diesem Fall MacPorts bash einbash
und wiederholen Sie den Vorgang.quelle
if [ -f /opt/local/share/git-core/git-prompt.sh ]; then . /opt/local/share/git-core/git-prompt.sh fi
/opt/local/etc/profile.d/bash_completion.sh
Bedürfnisse$BASH_VERSION
4.1 oder besser, ich hatte mit MacPorts die folgenden auf einem Mac OS X 10.8.3 zu tun 2.1.3: Schalten Sie den Mac OS X - Login - Shell von seinem Standard/bin/bash
(3.2.48 (1) -release) zu MacPorts/opt/local/bin/bash
(4.2 .42 (2) -Release) wie hier beschrieben: stackoverflow.com/a/791244/287984. Grundsätzlichif [ `grep /opt/local/bin/bash /etc/shells` ]; then echo /opt/local/bin/bash | chsh -s /opt/local/bin/bash; else echo /opt/local/bin/bash | sudo tee -a /etc/shells; chsh -s /opt/local/bin/bash; fi
/bin/bash
in Terminal.app durch/opt/local/bin/bash
von MacPorts + alle.bash_profile
hier vorgeschlagenen Änderungen ersetzen .Wenn Sie git mit Homebrew installiert haben, passen Sie möglicherweise die MacPorts-Ratschläge ein wenig an und fügen Sie diese zu Ihrem
.bash_profile
und hinzu.bashrc
Der beste Weg, um zu überprüfen, ob Sie git mit homebrew korrekt installiert haben, ist die Ausführung
und überprüfe die Ausgabe für das Installationsverzeichnis der git bash Vervollständigung
Die neueste Version von Git (1.7.12) erfordert außerdem Folgendes, um die Eingabeaufforderung zu aktivieren.
quelle
__git_ps1
Sie unter superuser.com/a/477749/90231 answer in this stack.Alles, was Sie tun müssen, ist, die
git-completion.bash
Datei in Ihrem Benutzer-Ausgangsverzeichnisbin
abzulegen und Folgendes in Sie.profile
oder Ihre.bash_profile
Datei abzulegen:Damit stellen Sie sicher, dass sich Ihr lokaler Bin im PATH befindet und der
source
Befehl die Dinge in Gang setzt. Dann setzt die PS1-Änderung natürlich den aktuell ausgecheckten Zweig in die Eingabeaufforderung.Es muss also kein MacPort installiert werden, um dann die "Vervollständigungs" -Version von GIT zu installieren (besonders ärgerlich, wenn Sie sie bereits installiert haben).
quelle
$PATH
. Ich entschied mich, meine/usr/local/bin/
einzubauen, damit ich meine bestehende nicht ändern musste$PATH
.Während die aktuelle Antwort für ältere MacPorts korrekt ist, gibt es ein neues Problem, bei dem die aktuellsten MacPorts denselben Fehler verursachen.
Das aktuelle Bash-Completion- Paket (2.0 r1) erfordert mindestens eine Bash 4.1, um ordnungsgemäß zu funktionieren. Wie ein gewöhnliches OS X Terminal
/bin/bash
bekommt es nur ein 3.x. Sie müssen die Terminaleinstellungen ändern, um sie/opt/local/bin/bash -l
wie in der MacPorts-Dokumentation beschrieben zu verwenden : http://trac.macports.org/wiki/howto/bash-completionquelle
Sie müssen die Befehlsabschlussfunktionen bereitstellen. Füge vor der PS1 dein .bashrc_profil hinzu:
quelle
Ärgerlicherweise wurde dies noch einmal gebrochen. Diesmal sind es die Git-Leute mit der Version 1.7.12-1. Damit die Benutzer nur die Eingabeaufforderungsfunktionalität ohne die Beendigungsfunktionalität verwenden können (was zu einer Verlangsamung führen kann), haben sie die Eingabeaufforderungsfunktionalität aus bash_completion / git in ihre eigene Datei git-prompt.sh überarbeitet.
Wenn Sie also bash_completion wie von @Lara beschrieben hinzufügen, erhalten Sie nur den Abschluss (wenn Sie auf die Registerkarte klicken, werden die Tag- / Zweignamen vervollständigt).
Um das zu erhalten,
__git_ps1
damit du es in deiner PS1-Eingabeaufforderung verwenden kannst, musst du deinem ~ / .profile auch Folgendes hinzufügen.. /opt/local/share/doc/git-core/contrib/completion/git-prompt.sh
Hintergrundinformationen finden Sie hier: https://bbs.archlinux.org/viewtopic.php?pid=1163632#p1163632
quelle
Oder mit Homebrew
quelle
brew install bash-completion git-extras
(Bindestrich statt Unterstrich).Eine Lösung zu einer ähnlichen Frage gefunden :
Der git-osx-Installer kommt mit
git-completion.bash
und installiert es/usr/local/git/contrib/completion/
. Quell einfach diese Datei von deinem.bash_profile
, um sie zu bekommen__git_ps1
.quelle
Für Mountain Lion und Mac-Ports musste ich die folgenden Zeilen in meinem .bash_profile verwenden, damit sowohl __git_ps1 als auch completions normal ausgeführt werden:
quelle
Ich benutze brew, daher scheint ein Master-
bash_completion
Skript, das alle ausführtbash_completion.d
, nicht zur Verfügung zu stehen. Die Lösungen, die nur die Ausführung eines einzelnen Skripts zum Hinzufügen von Git-Vervollständigungen vorschlagen, sind nicht erweiterbar, da verschiedene Pakete unterschiedliche Vervollständigungsskripts hinzufügen und Sie wahrscheinlich alle ausführen möchten. Deshalb habe ich dies (angepasst von Arch Linux) am Ende von/etc/bashrc
:quelle
Zumindest mit Xcode 6 hast du das schon
git-completion.bash
. Es befindet sich im Xcode-App-Bundle.Fügen Sie dies einfach zu Ihrer .bashrc hinzu:
quelle
git br<TAB>
Neben dem Beitrag von Adam K. Johnson
Sie können auch Folgendes setzen ...
... in Ihrer / etc / profile, wenn Sie wollen.
Auf diese Weise profitieren alle Benutzer des Systems von den Skripten zur Bash-Vervollständigung, die im Verzeichnis "/opt/local/etc/bash_completion.d/" installiert sind.
quelle
Während die obige Antwort von grundprinzip aus dem Jahr 2011 noch gut funktioniert, wollte ich jetzt eine neuere Antwort hinzufügen, da es jetzt ein Homebrew-Paket mit Bash-Vervollständigung ( Formel , Repo ) gibt, das dies noch einfacher macht. (Dies beinhaltet die Vervollständigung für Git sowie andere gängige Tools.)
Heute wird macOS mit Bash 3 ausgeliefert, aber Sie können
brew install bash
Bash 4 erhalten. Wenn Sie Bash 4 ausführen, installieren Sie den neueren 2.x-Zweig der Bash-Vervollständigung.Bash 4
Lauf:
Hinzufügen zu
~/.bash_profile
:Bash 3
Wenn Sie mit Stock Bash 3.x auf MacOS bleiben möchten, befolgen Sie stattdessen diese Anweisungen.
Lauf:
Hinzufügen zu
~/.bash_profile
:Referenz: http://davidalger.com/development/bash-completion-on-os-x-with-brew/
quelle
Ich denke, Sie haben möglicherweise vergessen, die Datei in Ihrem Login zu suchen
.bashrc
. Sie können Folgendes hinzufügen:Mit
.
gefolgt von einem Leerzeichen wird die Datei im aktuellen Kontext ausgeführt.quelle