216 votes

Ajout de la branche git à l'invite de commande Bash

J'ai essayé d'ajouter sans succès la branche git sur laquelle je travaille actuellement (extraite) à l'invite bash. ( Tout en conservant mon chemin actuel qui montre le répertoire actif / le fichier intact) J'ai un fichier .bashrc chez moi, mais j'ai aussi vu beaucoup de gens mentionner le fichier .profile ..

231voto

VonC Points 414372

Remarque ce genre de demande est maintenant géré par contrib/achèvement/git-prompt.sh et son __git_ps1_branch_name variable.

  • Copiez ce fichier quelque part (par exemple, ~/.git-prompt.sh).
  • Ajoutez la ligne suivante à votre .bashrc/.zshrc:
  source ~/.git-prompt.sh
  • Changer votre PS1 d'appel __git_ps1 comme la commande de substitution:
  Bash: 
  PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
  ZSH:  
  setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '

Mais notez que le git 1.9.3 (Mai 2014) vous permet de vous en toute sécurité afficher que le nom de la branche(!)

Voir commettre 8976500 par Richard Hansen (richardhansen):

Les deux bash et zsh sujet de la valeur de la PS1 à paramètre d'extension, de la substitution de commande, et l'expansion arithmétique.

Plutôt que d'inclure le brut, sans échappement nom de la branche en PS1 lors de l'exécution dans deux ou trois-argument mode de, de construire PS1 de faire référence à une variable qui contient le nom de la branche.

Parce que les coquilles ne pas développer de manière récurrente, cela évite l'exécution de code arbitraire par spécialement conçu direction générale des noms tels que

'$(IFS=_;cmd=sudo_rm_-rf_/;$cmd)'.

Ce sournois de l'esprit le nom de la branche comme ça? ;) (À côté d'une Maman comme dans xkcd)

64voto

Atropo Points 5169

Vous pouvez le faire en modifiant simplement les .bashrc . Vous devez également activer bash-completion . Jetez un oeil à ce tutoriel: Afficher la branche actuelle de Git et son statut dans votre invite .

44voto

Eric Lavoie Points 644

La réponse de Atropo est bon. Mais dans les détails :

1 - Si vous n'avez pas bash-completion ... : sudo apt-get install bash-completion

2 - Modifier votre .bashrc fichier et vérifier la présence (ou ajouter) :

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

3- ... avant votre invite de la ligne : export PS1='$(__git_ps1) \w\$ '
(__git_ps1 montrera votre branche git)

4 - avez - source .bashrc

EDIT :

Lectures supplémentaires : Ne pas Réinventer la Roue

1voto

Andy S Points 11

J'ai pu faire en sorte que cela fonctionne pour MacOS après ce tutoriel: Ajouter la branche Git actuelle à votre invite Bash

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X