Comment afficher la branche git courante dans le prompt

Publié le 4 Octobre 2013

J'aime bien utiliser git en ligne de commande mais les commandes 

git branch

pour savoir sur quelle branche on se trouve, et

git status

pour savoir s'il y a des changements à committer sont assez longues à taper à la longue justement!!

Heureusement on peut mettre en place une petite astuce pour afficher la branche courante dans le prompt de la ligne de commande.

Effectivement ça semble pas mal mais si en plus on pourrait l'afficher d'une couleur différente en fonctions de l'état du workspace (c'est à dire s'il y a des changements à committer ou non) ça me simplifierai assez la vie.

Et bien c'est possible en recopiant les lignes ci-dessous à la fin votre ~/.bashrc:

# change prompt when in a git repository
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
 c_reset=`tput sgr0`
 c_user=
 c_path=
 c_git_clean=`tput setaf 2`
 c_git_dirty=`tput setaf 1`
else
 c_reset=
 c_user=
 c_path=
 c_git_clean=
 c_git_dirty=
fi

git_prompt ()
{
 if ! git rev-parse --git-dir > /dev/null 2>&1; then
   return 0
 fi

 git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')

 if git diff --quiet 2>/dev/null >&2; then
   git_color="${c_git_clean}"
  else
   git_color=${c_git_dirty}
 fi

  echo " [$git_color$git_branch${c_reset}]"
}

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w [\033[00m\]${c_reset}$(git_prompt)\$ '

 

Ensuite ça donne une ligne de commande suivante:

bliz@patatos:~/git/projet [dev]$

On sur la branch 'dev' et il y a des changements non committer car 'dev' est en rouge. Dans le cas contraire il est vert

Rédigé par Bliz

Publié dans #Version control

Repost 0
Commenter cet article

Merlin 28/06/2016 08:42

J’ai réussi à connaitre les fonctionnalités avancées du Git grâce à l’aide des vidéos sur http://www.alphorm.com/tutoriel/formation-en-ligne-git-fonctionnalites-avancees et je dois dire que cette ligne de commande m’intéresse beaucoup. Merci pour ce partage.