Sur ma machine Linux, je réalise la saisie semi-automatique pour les branches avec Git.
[Notez que nous parlons de l’achèvement de la branche git, pas de l’ achèvement de la bash (par exemple, des commandes, des fichiers, etc.). Donc pas la réponse de Lane du tout]
Par exemple, je peux taper git checkout
+ TABet obtenir une liste de branches.
Ou je peux taper git checkout feb*
+ TABpour 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 de courir bash-completion/bash_completion
et bash-completion/bash_completion.sh.in
pas de joie. Le premier donnait des messages d'erreur à propos de declare: -A invalid_option
. La seconde n'a donné aucune erreur. Quand je git checkout
+ TABje reçois toujours une liste de fichiers dans le répertoire, pas de branches. Je suis dans la racine du projet.
La saisie automatique pour les répertoires et les commandes bash fonctionne correctement, elle est donc spécifique à Git.
la source
Models
dossier lorsque je le remplaçaism
Tab
pour le rendre completmaster
.source ~/.bash_profile
après avoir collé le code. Le redémarrage du terminal fera également la même chose.git
mais Apple par défautgit
)brew install git
et redémarrez le terminal pour ceux qui font face à une erreur bizarre commegit 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>]
Certaines personnes préfèrent utiliser un gestionnaire de packages pour automatiser l'installation, la mise à jour et la configuration des packages 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 de facto pour Mac OS).
Une fois que vous avez installé Homebrew, vous pouvez simplement installer git avec bash-completion avec
brew install git bash-completion
.Vous devrez ensuite mettre les éléments suivants dans votre
~/.bash_profile
:(Remarque: si cette installation échoue avec une erreur 404 et que git est déjà installé, supprimez simplement la partie git de cette installation).
Plus d'informations sur l'installation de git et bash-finish avec infusion ici.
la source
git
et l' ajoutbash-completion
n'est pas du tout le même que l' ajout.git-completion.bash
Ils sont différents programmes et ils font des choses tout à fait différentes - on fait la commande bash saisie semi - automatique et l'autre ne commande git autocomplétion et « Nair le twain rencontrera;)~/.bash_profile
?Exécutez ceci sur le terminal:
Ensuite, faites ceci:
Ajoutez ces lignes:
C'est tout. Cela a fonctionné pour moi.
la source
~/.bash_profile
fichier n'existe pas. C'est bien, il suffit de créer le fichier et d'y placer leif
script et de le sauvegarder. Rechargez votre shell après et cela fonctionnera.git
etgit-completion.bash
déjà venir avec des outils de ligne de commande macos (xcode-select --install
). Pour activer bash autocomplete, ajoutez ceci à votre~/.bash_profile
.Cela activera également la complétion automatique pour les branches git.
la source
Voici ce qui déroute certains d'entre vous: vous avez installé une brasserie ou des ports, mais vous utilisez un git système
/usr/bin/
. Pour vérifier ceci:Si vous voyez,
/usr/bin/git
alors soit le brassage n'est pas configuré correctement, soit vous n'avez pas installé git via le brassage.Si vous installez git via brew, l'activation des finitions bash pour les breuvages activera également les complétions bash pour git. Ceci est dû au
/usr/local/etc/bash_completion
fait que tout se trouve dans les sources/usr/local/bash_completion.d
et que le paquet brassage pour git y installe un script de complétion.la source
Vous pouvez installer bash et git à partir de MacPorts avec l’option "bash_completion" activée. C’est probablement le moyen le plus simple de maintenir à la fois le git et les finitions.
http://denis.tumblr.com/post/71390665/adding-bash-completion-for-git-on-mac-os-x-snow-leopard
Pour installer MacPorts: http://www.macports.org/install.php/
information additionnelle
Pour localiser les paramètres d'achèvement sur votre système Linux, consultez le fichier /etc/bash_completion.d/git (c'est un fichier long). Copier cela seul ne fonctionnera probablement pas, cependant, car il est conçu pour être généré par le cadre d'achèvement via / etc / bash_completion (qui provient de /etc/profile.d/bash_completion.sh; fichiers dans / etc / profile .d proviennent de / etc / profile).
la source
Si votre complétion de git est partiellement rompue, même après l’approvisionnement
https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash
, il vous suffira peut-être de mettre à jour votre version de git.Par exemple, lorsque j'ai tapé
git check
+TAB
, la saisie semi-automatique s’effectue correctementgit checkout
. Mais quand j'ai tapégit checkout
+TAB
, il n'affichait pas la liste des branches, seulementHEAD
.La solution pour moi était de mettre à jour ma
git
version. J'étais sur la version 2.7.0, ce qui apparemment n'était pas compatible avec la dernièregit-completion.bash
. J'ai exécutébrew upgrade git
, qui l'a mis à jour à 2.13.0, et maintenant, il complète correctement les noms de mes branches.la source
brew upgrade git
etbrew link git
(avec neutralisation activée)update
pourupgrade
.De loin, la meilleure référence que j'ai trouvée pour résoudre ce problème est sur SpinDance , par Connor Livingston :
la source
Essayé et cela fonctionne bien pour les branches, mais quand vous faites
git st
+tab
alors il montre l'erreur comme ceciInternet et recherché a constaté que
--list-cmds
dans.git-completion.bash
était dans la dernière version du git et sur mon mac la version git était2.17.2
Voici les solutions
Solution 1
git --version
commandePuis mettez le même numéro de version dans l'URL que j'ai fait
Suivez ensuite les mêmes étapes que dans la réponse en haut, mettez le code ci-dessous dans
~/.bash_profile
Solution 2
Vous devriez essayer de mettre à jour la version de Git au plus tard, alors cela devrait fonctionner.
la source
Installez oh-my-zsh et définissez zsh comme shell par défaut et remerciez-moi plus tard :)
la source
La plupart des utilisateurs auront
git
installé dans le cadre des outils de ligne de commande xcode/usr/bin/git
et des règles de complétion pour git seront disponibles sur/Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
.Dans ce cas, il n'est pas nécessaire d'installer git à partir de Homebrew ou des règles d'achèvement de git source à partir de raw.githubusercontent.com. Créez simplement un lien symbolique comme suit:
Remarque: assurez-vous que vous avez installé et configuré le
bash-completion
package à partir de Homebrew.la source
Localisez votre
.bashrc
fichier.Ouvrez-le et ajoutez cette ligne en bas:
source /etc/bash_completion.d/git
la source
/etc/bash_completion.d/
dossier, sur un système relativement nouveau (OSX 10.10.3)./etc/bash_completion.d/git
? Cela rendrait votre réponse plus utile.