Par exemple. sur une nouvelle machine Ubuntu, je viens de lancer Sudo apt-get git
, et la saisie est incomplète, par exemple. git check[tab]
.
Je n'ai rien trouvé sur http://git-scm.com/docs , mais l'achèvement du IIRC est inclus dans le paquet git ces jours-ci et j'ai juste besoin de la bonne entrée dans mon bashrc.
sur la plupart des distributions, le script d'achèvement git est installé dans /etc/bash_completion.d/
(ou /usr/share/bash-completion/completions/git
) lorsque vous installez git, inutile d’aller dans github. Vous avez juste besoin de l'utiliser - ajoutez cette ligne à votre .bashrc
:
source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git
Dans certaines versions d'Ubuntu, git autocomplete peut être cassé par défaut, la réinstallation en exécutant cette commande devrait résoudre le problème:
Sudo apt-get install git-core bash-completion
Vous pouvez installer la complétion de git avec Homebrew ou MacPorts.
si $BASH_VERSION
> 4: brew install bash-completion@2
(version mise à jour) Portez une attention particulière à la version de bash que vous avez comme version par défaut de MacOS est livrée avec la version 3.2.57 (1).
ajouter à .bash_profile
:
if [ -f /usr/local/share/bash-completion/bash_completion ]; then
. /usr/local/share/bash-completion/bash_completion
fi
Pour les anciennes versions de bash: brew install bash-completion
ajouter à .bash_profile
:
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
Sudo port install git +bash_completion
puis ajoutez ceci à votre .bash_profile
:
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
fi
plus d'infos dans ce guide: Installer la complétion de Bash git
Notez que dans tous les cas, vous devez créer un nouveau shell (ouvrez un nouvel onglet/fenêtre de terminal) pour que les modifications prennent effet.
j'ai eu le même problème, suivi ci-dessous les étapes:
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
puis ajoutez les lignes suivantes à votre .bash_profile
(généralement sous votre dossier personnel)
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
fi
La plupart des instructions que vous voyez vous diront de télécharger
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
et source que dans votre script de démarrage bash comme .bashrc
.
Mais il y a un problème avec cela, car il fait référence à la branche master
, qui est la dernière version de git-completion.bash
. Le problème est que parfois, cela casserait parce que ce n’est pas compatible avec la version de git que vous avez installée.
En fait, cela va casser parce que la branche git-completion.bash
De la branche master
comporte de nouvelles fonctionnalités nécessitant git v2.18, qui n’a pas encore été mise à jour par les gestionnaires de paquets et les installateurs. Vous obtiendrez une erreur unknown option: --list-cmds=list-mainporcelain,others,nohelpers,alias,list-complete,config
La solution la plus sûre consiste donc à référencer la version/balise correspondant au git que vous avez installé. Par exemple:
https://raw.githubusercontent.com/git/git/v2.17.1/contrib/completion/git-completion.bash
Notez qu'il a un v2.17.
Dans l'URL au lieu de master
. Et puis, bien sûr, assurez-vous d’avoir source dans le script de démarrage bash.
git-core
et bash-completion
Sudo apt-get install -y git-core bash-completion
Pour l'utilisation de la session en cours
source /usr/share/bash-completion/completions/git
Pour l'avoir toujours pour toutes les sessions
echo "source /usr/share/bash-completion/completions/git" >> ~/.bashrc
Voir https://github.com/git/git/blob/master/contrib/completion/git-completion.bash
Vous avez juste besoin de source le script d'achèvement
sur mon Ubuntu il y a un fichier installé ici:
source /etc/bash_completion.d/git-Prompt
vous pouvez suivre les liens dans le dossier /usr/lib/git-core
. Vous pouvez y trouver une instruction, comment configurer PS1 ou utiliser __git_ps1
Peut être utile pour quelqu'un: -
Après avoir téléchargé le fichier .git-completion.bash à partir du lien suivant,
curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
et en essayant d'utiliser la fonction __git_ps1, je devenais erreur as--
-bash: __git_ps1: command not found
Apparemment, nous devons télécharger les scripts séparément du maître pour que cette commande fonctionne, car __git_ps1 est défini dans git-Prompt.sh. Tellement semblable au téléchargement de .git-completion.bash, obtenez le git-Prompt.sh:
curl -L https://raw.github.com/git/git/master/contrib/completion/git-Prompt.sh > ~/.bash_git
puis ajoutez ce qui suit dans votre .bash_profile
source ~/.bash_git
if [ -f ~/.git-completion.bash ]; then
. ~/.git-completion.bash
export PS1='\W$(__git_ps1 "[%s]")>'
fi
source ~/.bash.git exécutera le fichier téléchargé et
La commande export PS1='\W$(__git_ps1 "[%s]")
ajoutera le nom de la branche d'extraction après le répertoire de travail actuel (s'il s'agit d'un référentiel git).
Donc ça va ressembler à: -
dir_Name[branch_name]
Où nom_répertoire est le nom du répertoire de travail et nom_branche sera le nom de la branche sur laquelle vous travaillez actuellement.
Veuillez noter que __git_ps1 est sensible à la casse.
Faites ceci dans votre ~/.bashrc
:
source /usr/share/bash-completion/completions/git
D’autres réponses vous disent d’installer bash-completion
_, vous n’avez pas besoin de le faire, mais si vous le faites, il n’est pas nécessaire de rechercher directement le résultat. Vous faites l'un ou l'autre, pas les deux.
Une solution plus générique consiste à interroger l'emplacement du système, comme recommandé par le projet bash-completion:
source "$(pkg-config --variable=completionsdir bash-completion)"/git