480 votes

git auto-complete pour *branches* en ligne de commande ?

Sur ma machine Linux, j'ai l'autocomplétion. pour les branches avec Git.

(Notez que nous parlons de la complétion de branche git, no la complétion de bash (par exemple, les commandes, les fichiers, etc). Ainsi, PAS Réponse de Lane du tout]

Par exemple, je peux taper git checkout + TAB et obtenir une liste de branches.

Ou je peux taper git checkout feb* + TAB pour obtenir toutes les branches qui commencent par "feb".

Comment puis-je obtenir cette fonctionnalité sur un Mac ?

J'ai essayé de télécharger et d'exécuter bash-completion/bash_completion y bash-completion/bash_completion.sh.in mais sans succès. La première a donné des messages d'erreur sur declare: -A invalid_option . La seconde n'a donné aucune erreur. Lorsque je git checkout + TAB mais j'obtiens toujours une liste de fichiers dans le répertoire, pas de branches. Je suis dans le projet Root.

L'auto-complétion pour les répertoires et les commandes bash fonctionne bien, donc c'est spécifique à Git.

0 votes

Je viens de rejoindre cette communauté donc je ne peux pas encore répondre, mais j'ai trouvé "oh-my-zsh" super super utile et j'aime vraiment l'interface utilisateur : github.com/ohmyzsh/ohmyzsh Ceci est, bien sûr, pour les personnes utilisant zsh. Je suppose que cela ne fonctionne pas pour bash...

0 votes

Maintenant que le Mac utilise zsh au lieu de bash. cette réponse peut s'avérer utile.

122voto

Lane Points 1227

Certaines personnes préfèrent utiliser un gestionnaire de paquets pour automatiser l'installation, la mise à jour et la configuration des paquets Mac OS. Je suis un fan des gestionnaires de paquets, et je pense que Homebrew est le meilleur gestionnaire de paquets pour Mac OS (certains diraient que c'est le gestionnaire de paquets Mac OS de facto).

Une fois que vous avez installé Homebrew, vous pouvez simplement installer git ainsi que complétion bash avec brew install git bash-completion .

Vous devrez ensuite mettre les éléments suivants dans votre fichier ~/.bash_profile :

if [ -f `brew --prefix`/etc/bash_completion.d/git-completion.bash ]; then
  . `brew --prefix`/etc/bash_completion.d/git-completion.bash
fi

(Note : Si cette installation échoue avec une erreur 404, et que vous avez déjà installé git, supprimez simplement la partie git de cette installation brew)

Plus d'infos sur l'installation de git et de bash-completion avec brew ici.

34 votes

Ajout de git et en ajoutant bash-completion n'est pas du tout la même chose que d'ajouter .git-completion.bash Ce sont des programmes différents et ils font des choses très différentes - l'un fait l'autocomplétion des commandes bash et l'autre fait l'autocomplétion des commandes git et les deux ne se rencontreront jamais ;).

0 votes

Cela fonctionne comme un charme, merci beaucoup. Pourriez-vous m'expliquer à quoi sert le script que vous m'avez fait ajouter dans ~/.bash_profile ?

3 votes

Malgré ce que d'autres ont dit à propos de cette réponse, c'est celle qui a fait fonctionner la complétion automatique de git dans le terminal.

43voto

digitalarbeiter Points 624

Exécutez ceci sur le terminal :

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

Alors, faites ça :

vi ~/.bash_profile

Ajoutez ces lignes :

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

C'est tout. Ça a marché pour moi.

1 votes

(2ème étape) Si quelqu'un préfère ouvrir le bash_profile avec un éditeur de texte, il suffit de faire ceci : open -e .bash_profile

3 votes

Sur un Mac OS High Sierra vierge, le ~/.bash_profile Le fichier n'existe pas. C'est bien, créez juste le fichier et placez le if script et sauvegardez. Rechargez votre shell après et cela fonctionnera.

0 votes

Cela a marché pour moi. Au lieu de vi (avec lequel j'ai toujours du mal), il suffit de faire open -e ~/.bash_profile

28voto

Olivier Dulac Points 1192

git y git-completion.bash sont déjà livrés avec des outils de ligne de commande MacOS ( xcode-select --install ). Pour activer l'autocomplétion de bash, ajoutez ceci à votre fichier ~/.bash_profile .

[ -f /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash ] \
    && . /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash

Cela permettra également d'activer l'autocomplétion pour les branches git.

0 votes

Je suis presque sûr d'avoir installé les outils de ligne de commande, mais ce fichier n'existe pas dans mon cas. Je suis heureux d'aller avec brew (et puisque mon git est avec brew aussi, peut-être plus sage aussi).

4 votes

Merci. IMO, ceci devrait être la réponse avec la coche verte.

2 votes

C'est la solution la plus simple et elle fonctionne pour moi.

27voto

Jpsy Points 1889

Autocomplétion Git sur Catalina et plus récent (en utilisant Homebrew)

MacOS est passé de bash a zsh comme shell par défaut à partir de Catalina.
Vous aurez donc besoin de scripts d'autocomplétion spécifiques pour zsh.

Voici comment les installer avec Homebrew :

brew install zsh-completion

La complétion zsh de Brew inclut en fait la complétion git.

Pour activer l'autocomplétion, vous devez alors ajouter un petit bloc de code à votre fichier ~/.zshrc . Vous devrez peut-être créer ce fichier dans votre dossier utilisateur s'il n'existe pas déjà. Note : La sortie de l'installation ci-dessus script vous indiquera exactement le code à ajouter, donc lisez-le attentivement et copiez-le au cas où il aurait été mis à jour depuis que j'ai écrit ici.

if type brew &>/dev/null; then
  FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

  autoload -Uz compinit
  compinit
fi

Important :
Une fois l'installation terminée, lire la sortie de l'installation script.
Il vous demandera non seulement d'ajouter du code au fichier .zshrc mais vous conseillera également sur les actions supplémentaires qui pourraient être nécessaires, comme la reconstruction forcée de zcompdump. Mais il est fort probable que vous n'aurez pas besoin de ces étapes supplémentaires.

3 votes

Le terminal affiche un message ennuyeux à chaque fois qu'il est ouvert : zsh compinit: insecure directories, run compaudit for list. Ignore insecure directories and continue [y] or abort compinit [n]? Mais ça marche !

0 votes

Je viens de rejoindre cette communauté donc je ne peux pas encore répondre, mais j'ai trouvé "oh-my-zsh" super super utile et j'aime vraiment l'interface utilisateur : github.com/ohmyzsh/ohmyzsh Ceci est, bien sûr, pour les personnes utilisant zsh. Je suppose que cela ne fonctionne pas pour bash...

2 votes

@AdolfoCorrea vous pouvez résoudre le message d'avertissement en entrant la commande suivante : compaudit | xargs chmod g-w

8voto

Brandon Points 81

Voici ce qui déconcerte certains d'entre vous : vous avez installé brew ou ports, mais vous utilisez un système git en /usr/bin/ . Pour vérifier cela :

which git

Si vous voyez /usr/bin/git alors soit brew n'est pas correctement configuré, soit vous n'avez pas installé git via brew.

Si vous installez git via brew, alors activer les complétions bash pour brew activera également les complétions bash pour git. Ceci est dû au fait que /usr/local/etc/bash_completion en fait, tout ce qui se trouve dans /usr/local/bash_completion.d et le paquet brew pour git installe un git completion script à cet endroit.

0 votes

C'est logique, mais comment "activer les complétions bash pour brew" ? Vous ne savez pas comment faire, cela devrait faire partie de votre réponse.

0 votes

Je viens de faire ça (ça marche, merci) via guide simplifié/MacOS/bash-complétion mais la complétion automatique est retardée de quelques secondes... bizarre

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X