.git-complétement.bash produisant une erreur sur macOS Sierra 10.12.6

40

J'ai suivi le processus git-completionselon la description fournie à https://medium.com/@farooqyousuf/autocomplete-git-commands-and-branch-names-in-terminal-on-mac-os-x-4e0beac0388a :

La première étape consiste à exécuter cette commande dans votre fenêtre de terminal, il s'agit essentiellement de saisir le script 'git-complétement.bash' et de le placer dans votre répertoire personnel.

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

Ajoutez maintenant cette ligne à votre '~ / .bash_profile'. Cela permettra l'exécution du script de saisie semi-automatique git s'il est présent

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

Vous pouvez maintenant redémarrer toutes vos fenêtres de terminal ou simplement actualiser la fenêtre de terminal dans laquelle vous souhaitez utiliser ce script. Pour actualiser, procédez comme suit:

source ~/.bash_profile

Voici l'erreur que j'obtiens en appuyant sur la tabtouche après avoir tapé 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
la source
Quelle version de git utilisez-vous et quelle version demande bash_completion?
user151019
git version 2.17.1
Rishi Kulshreshtha
J'obtiens la même chose sur Mac et Ubuntu aussi. git versions 2.4.7 et 2.17.
wisbucky

Réponses:

55

J'ai rencontré exactement le même problème. Après avoir creusé, j'ai finalement compris quel était le problème racine.

Ils ont fait quelques changements majeurs dans le git-completion.bashscénario qui nécessite une nouvelle fonctionnalité dans v2.18 git, --list-cmds. Le problème est qu'aucun des gestionnaires de paquets n'a encore mis à jour vers git v2.18.

La plupart des instructions disponibles disent de télécharger raw.githubusercontent.com/git/git/ master/contrib/completion/git-completion.bash. Mais ce n'est pas nécessairement la meilleure option car parfois vous en téléchargerez une plus récente git-completion.bashque votre version de git.

La solution est donc de télécharger la git-completion.bashversion qui correspond à votre version git. Ensuite, réapprovisionnez-le. Dans ce cas:

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

Notez qu'il fait référence à la v2.17.1place de master. Plus tard, lorsque vous installerez git v2.18, vous pourrez revenir à master, ou v2.18tag.

wisbucky
la source
2
Merci beaucoup!! Je cherchais la solution similaire, car je me souviens que cela git-completion.bashfonctionnait plus tôt.
Rishi Kulshreshtha
2
Fan-bloody-tastic
bhu Boue vidya
Cela résout le problème du suivi des versions - stackoverflow.com/a/18898614/1874627
saurabheights
3

La mise à niveau de git vers la dernière version est la solution la plus simple. https://git-scm.com/download/mac

Après cela, assurez-vous de suivre les étapes

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

  2. Ajoutez cette petite commande dans le .bash_profilefichier if [ -f ~/.git-completion.bash ]; then . ~/.git-completion.bash fi

Kidane
la source
2

Ne le construisez pas à partir de la source; installez plutôt à partir de MacPorts .

Pour installer git avec auto-complétion, émettez la commande suivante:

 $ sudo port install git +bash_completion

fermez et rouvrez votre terminal et l'achèvement de git devrait fonctionner

Allan
la source
J'ai essayé mais je n'ai pas résolu le problème. C'est toujours pareil.
Rishi Kulshreshtha
Émettez cette commande: sudo find / -type -name "git-completion.bash"et publiez les résultats à votre question.
Allan
1

Vous devez vérifier votre version de git et vous assurer qu'elle est mise à jour à au moins 1.8.

J'avais une ancienne version 1.7.11 mais cela ne fonctionnait pas et j'ai eu la même erreur que vous.

Mihai
la source
git version 2.17.1
Rishi Kulshreshtha
0

Si vous utilisez Homebrew, vous voudrez peut-être

  1. mettre à jour git:

    brew upgrade git

  2. sourcez le git-complétement.bash installé dans votre ~/.bash_profile:

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

Cela garantit que les versions installées du script git et de l'achèvement correspondent.

Alexander Presber
la source