Wenn ich OSXs Git verwende, kann ich nach dem Ändern einer Datei einfach etwas tun git commit <tab>
. Dadurch wird der Dateiname automatisch auf den geänderten Namen vervollständigt. Wenn ich jedoch eine neuere Version von git von Homebrew installiere und sie verwende, funktioniert diese Funktion nicht mehr (dh ich drücke <tab>
und frage mich nur, für welche Datei ich sie ausführen möchte, auch für diejenigen, die keine Änderungen aufweisen ).
Kann jemand etwas Licht ins Dunkel bringen, warum und wie man das löst? Ich würde es vorziehen, Homebrews Git zu verwenden, da es aktueller ist.
Meine Shell ist zsh und weder installiert bash-completion
noch zsh-completions
funktioniert (auch nachdem ich die Anweisungen von Homebrew nach der Installation befolgt habe).
Auch nach der Installation von Git mit Homebrew heißt es
Bash completion has been installed to: /usr/local/etc/bash_completion.d
zsh completion has been installed to: /usr/local/share/zsh/site-functions
Sollte ich nicht in der Lage sein, eine davon zu verwenden?
quelle
zsh
und verwendengit
Sie?git
Abschlüsse (git co<TAB>
==>git commit
zum Beispiel)?zsh-completions
nicht zufrieden mit dem Mac Git zu sein, obwohl es vorher gut funktioniert hat (möglicherweise blind auf 0.17.x aktualisiert).Antworten:
Du schaust nach:
Wie in Warpcs Kommentar angegeben, müssen Sie Folgendes zu Ihrem hinzufügen
~/.bash_profile
, damit Homebrews Bash-Vervollständigung funktioniert:Das Obige wird in den Vorbehalten erwähnt, wenn Sie die Bash-Completion-Formel installieren.
Hinweis: Wenn Sie Bash v4 oder höher (via
brew install bash
) verwenden, sollten Siebrew install bash-completion@2
Folgendes verwenden , um die Tab-Vervollständigung zu aktivieren. Fügen Sie Folgendes hinzu,~/.bash_profile
wie in den Vorsichtsmaßnahmen beschrieben:Der zusätzliche Export ist für Git, Docker, Youtube-DL und andere Vervollständigungen erforderlich, die möglicherweise im
$(brew --prefix)/etc/bash_completion.d/
Verzeichnis enthalten sind.quelle
brew install git zsh-completions
? Nach der Installation von git mit Homebrew heißt esBash completion has been installed to: /usr/local/etc/bash_completion.d zsh completion has been installed to: /usr/local/share/zsh/site-functions
also, könnte ich nicht eines davon verwenden?bash-completion
nochzsh-completions
funktioniert (auch nach Befolgung der Anweisungen von Homebrew nach der Installation).Dies funktioniert unter OSX, ohne dass Sie Ihr Terminal neu starten müssen:
quelle
&&
. Jedes Bash-Skript könnte so ein Einzeiler sein.brew install
Methode. Einfach weil es funktioniert.Falls jemand meinen dummen Fehler macht, versuchen Sie es
brew install git
. Ich habe dasgit
mit Xcode gelieferte verwendet und nicht bemerkt, dass ich Homebrews Git nie installiert habe, um die Autovervollständigungen zu erhalten.quelle
Aus irgendeinem Grund fehlte mir die Datei unter,
$(brew --prefix)/etc/bash_completion
sodass die richtige Antwort von @Graham Perks bei mir nicht funktionierteEs endete die Lösung in meinem Fall war:
quelle
Ich löste das Problem , indem sie herauszufinden , dass
$(brew --prefix)/etc/bash_completion
zurückgegeben ,Permission denied
wenn sie ausgeführt. Also nach einem einfachen:Alles funktioniert jetzt gut. Ich frage mich, warum Homebrew die
bash_completion
Datei bei der Installation nicht ausführbar macht.quelle
bash_completion
soll so seinsource
, dass die Definitionen in Ihrer Shell sind; Die Ausführung hat keine Auswirkung.Eine funktionierende Lösung gefunden. Es ist sehr neu (vor 16 Stunden verfasst und vor 2 Stunden festgelegt) und kommt direkt von Homebrew .
brew install git --without-completions
Ich habe es gerade versucht und es funktioniert schließlich wie beabsichtigt.
quelle
git
ohne Abschluss die Situation verbessern kann, in der die Fertigstellung nicht funktioniert. Ich bin der Meinung, dass die Antwort von Graham Perks stackoverflow.com/a/14970926/1199564 als die richtige Antwort gekennzeichnet werden sollte.git --without-completions
und Beschaffung derbash-completion.bash
Datei gelöst.bash_profile
, die höchstwahrscheinlich nach dem Standardverfahren überschrieben wird.brew install git
alles behoben (keine Notwendigkeit für - ohne Abschluss). Ich denke, das ist auch eine richtige Antwort.Ich hatte das gleiche Problem und habe diesen Beitrag heute Morgen sogar gefunden. Ich habe das Problem behoben, indem ich Brew mit aktualisiert
brew update
und dann Git mit neu installiert habebrew reinstall git
.Ich wurde dann über eine andere Datei informiert, die den Homebrew-Verknüpfungsprozess blockiert, in meinem Fall
/usr/local/share/zsh/site-functions/git-completion.bash
. Durch Entfernen der Datei und Ausführen wurdebrew link git
das Problem behoben. Ich schätze, es war nur eine schlechte Rezeptversion, auf die wir gestoßen sind.quelle
git --version
brew reinstall git
und musste es auch wiederbrew reinstall bash-completion
zum Laufen bringen.Wenn Sie
$BASH_VERSION
<4.1 haben, z. B.3.2.57(1)-release
fahren Sie fort mit:Wenn Sie
brew install bash
jedoch eine Version4.4.12(1)-release
benötigen, können Sie die besseren und vollständigeren Vervollständigungen verwenden in:Beachten Sie, dass einige Pakete (Brew, Docker, TMX) noch einige Vervollständigungen enthalten,
$(brew --prefix)/etc/bash_completion.d/
sodass Sie Folgendes hinzufügen können:Schließlich sollten Sie in der Lage sein, das Git-Abschlussskript hinzuzufügen, wenn die Art und Weise, wie Sie Git installiert haben, es aus irgendeinem Grund nicht zu einem der folgenden hinzugefügt hat:
Sie können es mit den oben genannten erhalten und hinzufügen.
quelle
Schritt 1: Laden Sie das Auto-Completion-Skript herunter:
Schritt 2: Aktualisieren Sie .bash_profile und .bashrc
Über https://www.anintegratedworld.com/git-tab-autocomplete-on-osx-10-11-el-capitan/
Wenn dies nicht funktioniert, versuchen Sie es mit https://github.com/bobthecow/git-flow-completion/wiki/Install-Bash-git-completion
quelle
Für mich musste ich setzen
in
.bashrc
(nicht .bash_profile), damit dies funktioniert.".bash_profile wird für Login-Shells ausgeführt, während .bashrc für interaktive Nicht-Login-Shells ausgeführt wird" - von Was ist der Unterschied zwischen .bash_profile und .bashrc? Es scheint mir, dass MacOS Sierra nicht nur
.bash_profile
beim Öffnen eines neuen Terminalfensters ausgeführt wird.bashrc
.Ich würde es nicht in _bash_profile einfügen, da ich dann neu starten / abmelden müsste, damit Updates wirksam werden.
quelle
Dies hat bei mir in Mojave (OSX 10.14.1) funktioniert:
Fügen Sie dann die folgende Zeile zu Ihrem ~ / .bash_profile hinzu:
quelle
Im Jahr 2019 müssen Sie mit Bash v5 das Git-Bash-Abschlussskript nicht explizit in Ihrem
.bash_profile
oder angeben.bashrc
.bashrc
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
) herunter und speichern Sie es/usr/local/etc/bash_completion.d/
untergit
Das ist es! Bash nimmt automatisch die Git-Abschlussdatei auf und aktiviert den Abschluss.
Randnotiz: Ich empfehle, alle diese Änderungen vorzunehmen,
.bashrc
da dies sicherstellt, dass beim Ablegen in eine interaktive Shell (dh vonpipenv shell
) die Vervollständigungen korrekt geladen werden, da die Bash-Quelle.bashrc
und NICHT.bash_profile
.quelle
Es kann etwas damit zu tun haben, dass libedit anstelle von readline in Lion verwendet wird.
Versuchen Sie, readline vor git zu installieren.
quelle
Für diejenigen, die bereits einen Bash-Bash-Abschluss installiert haben. Ich hatte das Git-Vervollständigungsskript nicht installiert und konnte keinen Tipp dafür finden.
Also habe ich es manuell hinzugefügt:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o $(brew --prefix)/etc/bash_completion.d/git
Beachten Sie, dass Sie die Datei umbenennen und die Erweiterung entfernen müssen, damit sie funktioniert.
Wenn Sie Completion oder Git nicht installiert haben, installieren Sie es in der akzeptierten Antwort.
brew install git bash-completion
quelle
Wenn Sie Homebrew zur Installation von Git verwendet haben, müssen Sie wahrscheinlich nichts installieren, um die Fertigstellung von Git zu unterstützen. Die Datei "git-vervollständigung.bash" befindet sich irgendwo (meine war hier: /usr/local/git/contrib/completion/git-completion.bash)
Alles was Sie tun müssen, ist die Datei zu finden: sudo find / -type f -name "git-vervollständigung.bash"
Geben Sie dann den Pfad in Ihr .bash_profile ein. Zum Beispiel musste ich diese Zeile zu meinem ~ / .bash_profile hinzufügen:
Vergiss nicht, dein ~ / .bash_profile zu beschaffen oder dein Terminal erneut zu öffnen;)
von: How-Enable-Git-Tab-Vervollständigung-Bash-Mac-OS-X
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber Sie müssen keine zusätzlichen Pakete installieren.
Homebrew informiert Sie darüber, dass es ein Verzeichnis mit allen benötigten Informationen gibt.
Sie können einfach die folgende Zeile zu Ihrer hinzufügen,
.bash_profile
wenn Sie Bash verwenden:quelle
Aktivieren der automatischen Vervollständigung von GIT-Befehlen unter MAC-OS Mojave 10.14 Ich bin Entwickler und verwende GIT die ganze Zeit über über die Befehlszeile. Wenn ich die Entwicklungsperspektive betrachte, habe ich viele Befehle über die Befehlszeile für GIT-Operationen ausgeführt. Meistens ist es sehr ärgerlich, dass MAC OS keine automatische Unterstützung für die Befehlsvervollständigung hat, die ich teilweise unterstütze. sowie die Befehlsvorschläge, dh welche Befehle für eingegebene Zeichen verfügbar sind. Es ist daher sehr mühsam, sehr lange Befehle und meist sich wiederholende Aufgaben als Tippfehler einzugeben. :((
Die Tab-Vervollständigung wäre sicherlich schneller und einfacher. Leider ist bei der Standardinstallation von git auf einigen Mac-Computern die Tab-Vervollständigung nicht aktiviert.
Damit habe ich nach einer Lösung für das Problem gesucht und es wurden verschiedene Lösungen aus der Websuche gefunden, wie z. B. StackOverflow, GitHub sowie aus dem Medium. Leider haben diese Lösungen bei mir nicht funktioniert und ich war frustriert, so oft verschiedene Lösungen ausprobiert zu haben.
Ich habe tief gesucht und verschiedene Lösungen ausprobiert und zum Glück ist es eine einfache Lösung. Im Folgenden sind die Schritte aufgeführt, die ich in mehreren Posts gesammelt habe und die schließlich wie erwartet funktioniert haben. Ich hoffe, mit anderen zu teilen, die dieses Problem wie ich haben.
Wenn Sie zur Websuche gehen, finden Sie viele Lösungen, in denen die BIT-Datei für die Git-Vervollständigung erwähnt wird. Sogar GitHub-Anleitung. Ich schlage jedoch vor, dass Sie zuerst prüfen, ob sich die Datei git-finish.bash bereits auf Ihrem MAC-Computer mit dem Git-Core oder etwas anderem befindet, das aus der Installation stammt. Sie können den folgenden Befehl verwenden.
Sie erhalten unten Ergebnisse. (kann je nach Inhalt einen Unterschied haben)
Ich schlage vor, Sie wählen, welche von Git-Core installiert
Wenn das Skript "git-vervollständigung.bash" auf Ihrem Computer nicht vorhanden ist, rufen Sie es bitte aus dem oben angegebenen Format ab und speichern Sie es auf Ihrem lokalen Computer in einer neuen Datei mit dem Namen "git-vervollständigung.bash" in / usr / local / etc / bash_completion.d / Verzeichnis.
https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks
Wenn Sie die Bash-Shell verwenden, wird Git mit einem netten Skript zur automatischen Vervollständigung geliefert, das Sie aktivieren können. Laden Sie es direkt aus dem Git-Quellcode unter herunter
https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Wenn das Skript git-vervollständigung.bash auf Ihrem Computer vorhanden ist, sich jedoch nicht im Verzeichnis /usr/local/etc/bash_completion.d/ befindet, sollten Sie dieses Verzeichnis erstellen und die Datei in dieses Verzeichnis kopieren. Der folgende Befehl erledigt die Aufgabe:
Nach dem Abschluss von oben. Das Skript git-vervollständigung.bash sollte auf Ihrem lokalen Computer im Verzeichnis / usr / local / etc / bash_completion.d / vorhanden sein.
Jetzt müssen Sie Ihr Profil mit dem folgenden Befehl aktualisieren. Es wird Ihre hinzugefügte Bash-Datei in den Terminal-Kontext laden.
Toll!!! Du hast es getan. Starten Sie einfach das Terminalfenster und probieren Sie es aus. Geben Sie einfach "git sta" ein, um die folgenden Vorschläge anzuzeigen:
siehe meinen GitHub Beitrag hier:
https://github.com/DIL8654/Enable-Auto-Completion-of-GIT-commads-on-MAC-OS-Mojave
Siehe meinen mittleren Beitrag hier:
https://medium.com/@dilanka85/enable-auto-completion-of-git-commands-on-mac-os-mojave-10-14
quelle