Auf meinem Linux-Rechner habe ich Autocomplete für Verzweigungen mit Git.
[Beachten Sie, dass es sich um die Vervollständigung von Git-Zweigen handelt, nicht um die Vervollständigung von Bashs (z. B. Befehle, Dateien usw.). Also KEINE Antwort von Lane ]
Zum Beispiel kann ich git checkout
+ eingeben TABund eine Liste der Zweige erhalten.
Oder ich kann git checkout feb*
+ TABeingeben, um alle Zweige abzurufen, die mit "feb" beginnen.
Wie kann ich diese Funktionalität auf einem Mac erhalten?
Ich habe versucht , das Herunterladen und Ausführen bash-completion/bash_completion
und bash-completion/bash_completion.sh.in
aber keine Freude. Der erste gab Fehlermeldungen über declare: -A invalid_option
. Der zweite gab keine Fehler. Als ich git checkout
+ TABobwohl ich noch eine Liste der Dateien im Verzeichnis bekommen, nicht Zweige. Ich bin in der Projektwurzel.
Die automatische Vervollständigung für Verzeichnisse und Bash-Befehle funktioniert einwandfrei, ist also Git-spezifisch.
quelle
Models
Ordner automatisch zu vervollständigen, als ich auf trafm
Tab
, um ihn automatisch zu vervollständigenmaster
.source ~/.bash_profile
Nachdem Sie den Code eingefügt haben. Ein Neustart des Terminals führt ebenfalls zum gleichen Ergebnis.git
aber Apple Standardgit
)brew install git
und starten Sie das Terminal für diejenigen, die seltsame Fehler wie konfrontiert sindgit checunknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>]
Einige Benutzer bevorzugen die Verwendung eines Paket-Managers, um die Installation, Aktualisierung und Konfiguration von Mac OS-Paketen zu automatisieren. Ich bin ein Fan von Paketmanagern und ich denke, Homebrew ist der beste Paketmanager für Mac OS (einige würden sagen, es ist der De-facto-Paketmanager für Mac OS).
Sobald Sie Homebrew installiert haben, können Sie einfach git zusammen mit bash-completion mit installieren
brew install git bash-completion
.In diesem Fall müssen Sie Folgendes eingeben
~/.bash_profile
:(Hinweis: Wenn diese Installation mit einem 404-Fehler fehlschlägt und Sie git bereits installiert haben, entfernen Sie einfach den git-Teil dieser Brauinstallation.)
Weitere Informationen zum Installieren von Git und zur Bash-Vervollständigung mit Brew finden Sie hier.
quelle
git
und Hinzufügenbash-completion
ist keineswegs dasselbe wie das Hinzufügen..git-completion.bash
Sie sind verschiedene Programme und sie machen ganz verschiedene Dinge - einer führt die automatische Vervollständigung von Bash-Befehlen aus und der andere führt die automatische Vervollständigung von Git-Befehlen aus und 'nair the twain will meet;)~/.bash_profile
?Führen Sie dies auf dem Terminal aus:
Dann mach das:
Fügen Sie diese Zeilen hinzu:
Das ist alles. Das hat bei mir funktioniert.
quelle
~/.bash_profile
Datei nicht. Das ist in Ordnung, erstelle einfach die Datei und platziere dasif
Skript dort und speichere es. Laden Sie Ihre Shell nach und es wird funktionieren.git
undgit-completion.bash
bereits mit MacOS Kommandozeilen-Tools (xcode-select --install
). Um die automatische Vervollständigung von Bash zu aktivieren, fügen Sie diese zu Ihrer hinzu~/.bash_profile
.Dadurch wird auch die automatische Vervollständigung für Git-Zweige aktiviert.
quelle
Hier ist, was einige von Ihnen verwirrt: Sie haben Brew oder Ports installiert, aber Sie verwenden ein System-Git in
/usr/bin/
. Um dies zu überprüfen:Wenn Sie sehen,
/usr/bin/git
ist entweder brew nicht richtig konfiguriert oder Sie haben git nicht über brew installiert.Wenn Sie git via brew installieren, werden durch das Aktivieren der Bash-Vervollständigungen für brew auch die Bash-Vervollständigungen für git aktiviert. Dies liegt daran, dass
/usr/local/etc/bash_completion
tatsächlich alles in/usr/local/bash_completion.d
quellt und das Brew-Paket für git dort ein git-Vervollständigungsskript installiert.quelle
Sie können bash und git von MacPorts mit aktivierter Option "bash_completion" installieren. Dies ist wahrscheinlich der einfachste Weg, um sowohl Git als auch die Vervollständigungen auf dem neuesten Stand zu halten.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
So installieren Sie MacPorts: http://www.macports.org/install.php/
zusätzliche Information
Informationen zum Auffinden der Vervollständigungseinstellungen auf Ihrem Linux-System finden Sie in /etc/bash_completion.d/git (es ist eine lange Datei). Das Kopieren an sich wird jedoch wahrscheinlich nicht funktionieren, da es vom Completion Framework über / etc / bash_completion (das aus /etc/profile.d/bash_completion.sh; Dateien in / etc / profile stammt) bereitgestellt wird .d stammen aus / etc / profile).
quelle
Wenn Ihre Git-Vervollständigung auch nach der Beschaffung teilweise fehlerhaft ist
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
, müssen Sie möglicherweise nur Ihre Git-Version aktualisieren.Wenn ich zum Beispiel
git check
+ eingebeTAB
, wird es korrekt automatisch vervollständigtgit checkout
. Bei der Eingabe vongit checkout
+TAB
wurde jedoch nicht nur die Liste der Zweige angezeigtHEAD
.Das Update für mich war, meine
git
Version zu aktualisieren . Ich war auf 2.7.0, was anscheinend nicht mit dem neuesten kompatibel wargit-completion.bash
. Ich habe ausgeführtbrew upgrade git
, wodurch es auf 2.13.0 aktualisiert wurde, und jetzt werden meine Zweignamen ordnungsgemäß automatisch vervollständigt.quelle
brew upgrade git
undbrew link git
(mit aktivierter Überschreibung)update
zuupgrade
.Die beste Referenz, die ich zur Lösung dieses Problems gefunden habe, ist SpinDance von Connor Livingston :
quelle
Versuchte es und es funktioniert gut für Zweige, aber wenn Sie
git st
+tab
dann tun , zeigt es den Fehler wie folgtDurchsuchte das Internet und stellte fest, dass
--list-cmds
in der.git-completion.bash
neuesten Version des Git und auf meinem Mac die Git-Version war2.17.2
Hier sind die Lösungen
Lösung 1
git --version
BefehlTragen Sie dann die gleiche Versionsnummer in die URL ein wie ich
Befolgen Sie dann die gleichen Schritte wie in der oberen Antwort und geben Sie den folgenden Code ein
~/.bash_profile
Lösung 2
Sie sollten versuchen, die Git-Version auf den neuesten Stand zu bringen, dann sollte es funktionieren.
quelle
Installiere oh-my-zsh und setze zsh als Standardshell und danke mir später :)
quelle
Die meisten Benutzer werden
git
als Teil der xcode-Befehlszeilentools unter installiert haben/usr/bin/git
und die Bash-Vervollständigungsregeln für Git werden unter verfügbar sein/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
.In diesem Fall ist es nicht erforderlich, Git von Homebrew zu installieren oder Regeln für die Vervollständigung von Quell-Git von raw.githubusercontent.com aus zu verwenden. Erstellen Sie einfach einen Symlink wie folgt:
Hinweis: Stellen Sie sicher, dass Sie das
bash-completion
Paket von Homebrew installiert und konfiguriert haben .quelle
Suchen Sie Ihre
.bashrc
Datei.Öffne es und füge diese Zeile unten hinzu:
source /etc/bash_completion.d/git
quelle
/etc/bash_completion.d/
Ordner auf einem relativ neuen System (OSX 10.10.3)./etc/bash_completion.d/git
? Dies würde Ihre Antwort wertvoller machen.