.git-completion.bash erzeugt einen Fehler unter macOS Sierra 10.12.6

40

Ich habe den Prozess git-completiongemäß der Beschreibung unter https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a verfolgt :

Der erste Schritt besteht darin, diesen Befehl in Ihrem Terminalfenster auszuführen. Dabei wird im Grunde das Skript 'git-completion.bash' abgerufen und in Ihr Ausgangsverzeichnis gestellt.

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

Fügen Sie nun diese Zeile zu Ihrem '~ / .bash_profile' hinzu. Dies ermöglicht die Ausführung des Git-Autocomplete-Skripts, falls vorhanden

if [ -f ~/.git-completion.bash ]; then
  . ~/.git-completion.bash
fi

Sie können jetzt alle Terminalfenster neu starten oder nur das Terminalfenster aktualisieren, in dem Sie dieses Skript verwenden möchten.

source ~/.bash_profile

Folgendes ist der Fehler, den ich bekomme, wenn ich tabnach der Eingabe die Taste drücke git:

unknown 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>]
Rishi Kulshreshtha
quelle
Welche Version von Git wird verwendet und nach welcher Version fragt bash_completion?
user151019
git version 2.17.1
Rishi Kulshreshtha
Ich bekomme das gleiche auch auf Mac und Ubuntu. Git-Versionen 2.4.7 und 2.17.
wisbucky

Antworten:

55

Ich bin auf genau dasselbe Problem gestoßen. Nach einigem Graben habe ich endlich herausgefunden, was das Grundproblem ist.

Sie haben einige wichtige Änderungen am git-completion.bashSkript vorgenommen, die eine neue Funktion in git v2.18, erfordern --list-cmds. Das Problem ist, dass noch keiner der Paketmanager auf git v2.18 aktualisiert hat.

In den meisten Anweisungen wird angegeben, dass raw.githubusercontent.com/git/git/ master/contrib/completion/git-completion.bash heruntergeladen werden soll. Dies ist jedoch nicht unbedingt die beste Option, da Sie manchmal eine neuere git-completion.bashals die von Ihnen unterstützte Version von git herunterladen .

Die Lösung besteht also darin, die git-completion.bashVersion herunterzuladen, die Ihrer Git-Version entspricht. Dann geben Sie es erneut ein. In diesem Fall:

https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash

Beachten Sie, dass v2.17.1statt auf verwiesen wird master. Wenn Sie später git v2.18 installieren, können Sie zurück zu masteroder v2.18tag wechseln .

weises Glück
quelle
2
Danke vielmals!! Ich suchte nach einer ähnlichen Lösung, da ich mich erinnere, dass git-completion.bashsie früher funktionierte.
Rishi Kulshreshtha
2
Fan-bloody-tastic
bhu Boue vidya
Dies behebt das Problem der Versionsverfolgung - stackoverflow.com/a/18898614/1874627
saurabheights
3

Ein Upgrade des Git auf die neueste Version ist die einfachste Lösung. https://git-scm.com/download/mac

Danach stellen Sie sicher, dass Sie die Schritte befolgen

  1. curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash

  2. Fügen Sie diesen kleinen Befehl in die .bash_profileDatei ein if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi

Kidane
quelle
2

Baue es nicht von der Quelle; stattdessen von MacPorts installieren .

Geben Sie den folgenden Befehl ein, um git mit automatischer Vervollständigung zu installieren:

 $ sudo port install git +bash_completion

Schließen Sie Ihr Terminal und öffnen Sie es erneut. Die Git-Vervollständigung sollte funktionieren

Allan
quelle
Ich habe es versucht, aber das Problem nicht gelöst. Es ist immer noch dasselbe.
Rishi Kulshreshtha
Setzen Sie diesen Befehl ab sudo find / -type -name "git-completion.bash"und veröffentlichen Sie die Ergebnisse in Ihrer Frage.
Allan
1

Sie sollten Ihre Git-Version überprüfen und sicherstellen, dass sie auf mindestens 1.8 aktualisiert ist.

Ich hatte eine ältere Version 1.7.11, aber das hat nicht funktioniert und Sie haben den gleichen Fehler.

Mihai
quelle
git version 2.17.1
Rishi Kulshreshtha
0

Wenn Sie Homebrew verwenden, möchten Sie vielleicht

  1. Upgrade-Git:

    brew upgrade git

  2. Quell die installierte git-completion.bash in deinem ~/.bash_profile:

    . /usr/local/etc/bash_completion.d/git-completion.bash

Dadurch wird sichergestellt, dass die installierten Versionen von git und Vervollständigungsskript übereinstimmen.

Alexander Presber
quelle