Linux – Afficher la branche Git dans le prompt

Linux – Afficher la branche Git dans le prompt

I. Présentation

Lorsqu’on utilise Git au quotidien pour versionner son code / ses scripts, on est souvent amené à créer des branches pour tester un bout de code, corriger un bug, le tout sans impacter le script actuel qui tourne en production.

Et pour éviter un carnage en production, nous devons redoubler de vigilance, et nous assurer de bien être sur la branche de test, et non celle de production.

Il existe des commandes Git pour vérifier cela, et pour naviguer d’une branche à l’autre. Mais on peut vite s’y perdre.

Et si je vous disais qu’il est possible de manipuler le prompt de votre terminal Linux pour afficher le nom de la branche de votre repository Git sur laquelle vous travaillez ?

Note : Si vous ne voyez pas encore l’intérêt en tant que sysadmin d’utiliser Git pour gérer vos scripts et la configuration de vos serveurs, laissez-moi vous convaincre du contraire : Git c’est l’avenir du sysadmin. Ça devient même un nouveau standard dont vous ne pouvez plus passer à côté.

II. Prérequis

Afin de suivre ce tutoriel, vous devez respecter les prérequis suivants :

  • Avoir une distribution Linux fonctionnelle, que ce soit une machine virtuelle, ou une distribution sous WSL
  • Git installé
  • Avoir créé votre premier repository Git

Au lancement de votre terminal Linux, vous devriez avoir par défaut un prompt affichant :

  • Votre nom d’utilisateur
  • Le hostname de votre machine
  • Le répertoire dans lequel vous vous trouvez
  • Un $, indiquant que votre compte n’est pas un compte root

Le contenu de ce prompt est stocké dans une variable nommée PS1, pour Prompt String 1.

Vous pouvez d’ailleurs afficher le contenu de cette variable via la commande :

echo $PS1

Bon, on est d’accord, vu comme ça, c’est un peu moins parlant 😉

Note : Si l’anglais n’est pas un problème pour vous, je vous invite à consulter cet article pour tout savoir en détail sur la variable PS1.

Pour afficher le nom de la branche Git sur laquelle on travaille dans notre prompt, il nous faut donc modifier le contenu de cette variable PS1.

Et pour éviter de refaire la manipulation à chaque fois que l’on démarre un nouveau terminal, on va donc ajouter un bout de code à notre profile bash, en modifiant le fichier .bashrc :

vim ~/.bashrc

Note : le caractère ~ est un raccourci pour indiquer votre répertoire d’utilisateur. Dans mon cas, cela correspond à /home/thibault.

Déplacez-vous à la fin du fichier, et ajoutez le code suivant, puis sauvegardez :

# Configuration Git Branch – Modification prompt Linux
parse_git_branch() 
     git branch 2> /dev/null 
export PS1="\u@\h \(\033(32m\)\w\(\033(33m\)\$(parse_git_branch)\(\033(00m\) $ "

Avant de tester le bon fonctionnement du code, quelques explications s’imposent :

La fonction parse_git_branch va extraire le nom de la branche Git sur laquelle vous vous trouvez actuellement dans votre repository Git.

Le contenu de la variable PS1 est alors modifié pour inclure le nom de la branche Git.

Si on analyse en détail le contenu de la variable PS1, on a alors les propriétés suivantes :

  • \u@\h \(\033(32m\) à Affiche le nom de l’utilisateur et le hostname de la machine, avec la couleur appropriée
  • \w\(\033(33m\) à Affiche le nom du répertoire de travail actuel. Lorsque vous changez de répertoire avec la commande cd, ce contenu change également de manière dynamique.
  • \$(parse_git_branch)\(\033(00m\) à Si le répertoire de travail est un repository Git (et seulement dans ce cas-là), alors on affiche le nom de la branche Git dans laquelle nous nous trouvons actuellement.

IV. Tester le bon fonctionnement

Maintenant pour tester ça, comment faire ? Et bien, il suffit de redémarrer votre terminal pour que la fonction que l’on vient de rajouter soit prise en compte.

Jusque là, vous ne devriez voir aucun changement. Normal après tout, puisque vous vous trouvez actuellement dans un répertoire qui n’est pas tracké par Git.

Pour vérifier le fonctionnement, je me déplace dans mon dossier repository Git « scripts », qui contient deux branches :

On peut voir que lorsque j’utilise la commande git checkout pour changer de branche et me déplacer entre « master » et « test/branch », mon prompt change aussi en fonction.

V. Conclusion

Ainsi, on sait d’un coup d’œil si le répertoire de travail est suivi par Git ou non, et si c’est le cas, on connaît également la branche (production, développement, etc) sur laquelle on travaille.

Plus aucun risque de se tromper maintenant ! 😉

Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Script Bash - Générer des nombres aléatoires sous Linux

Script Bash – Comment générer des nombres aléatoires sous Linux ?

Table de Matieres1 I. Présentation2 II. Utiliser la variable $RANDOM pour les nombres aléatoires3 III. …

Script Bash - Affecter le résultat d'une commande à une variable

Bash : comment stocker le résultat d’une commande dans une variable ?

I. Présentation Dans ce tutoriel, nous allons apprendre à stocker le résultat d’une commande Linux …

Linux : comment renommer son terminal ?

Linux : comment renommer son terminal ?

Table de Matieres1 I. Présentation2 II. Prérequis3 III. Utiliser le terminal Mate4 IV. Fonction custom …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.