Git protip : personnaliser la couleur des statuts
Par Maxime Bréhin • Publié le 3 octobre 2022 • 2 min

Si comme moi tu utilises Git essentiellement dans le terminal, alors tu utilises très souvent la commande git status. Ce qui me gêne dans l’affichage proposé par défaut, c’est que le choix des couleurs est identique pour les fichiers modifiés, les fichiers créés et les fichiers conflictuels. De base on trouve une différence entre les fichiers indexés/stagés en vert, et les fichiers non indexés en rouge (qu’ils soient modifiés ou non suivis).

TODO: Par défaut tout ajout, conflit ou modification est affiché avec le nom du fichier en rouge sur fond noir

C’est là qu’intervient ma configuration personnalisée. Je précise la couleur du texte et du fond selon le statut des fichiers. J’ai opté pour :

  • Noir sur fond jaune pour les fichiers non suivis (notamment ceux fraîchement créés) ;
  • Magenta pour les fichiers ayant des conflits.

Je pousse même avec une mise en forme italique pour les fichiers en conflit.

git config --global color.status.untracked 'black yellow'
git config --global color.status.unmerged 'magenta italic'

Une fois les couleurs spécifiées, le rendu est bien plus clair

Couleurs et mises en forme

Les mises en formes peuvent être cumulées (mais n’en abuse pas trop non plus). Leur ordre n’a pas d’importance. Les valeurs possibles sont :

  • bold pour mettre en gras ;
  • dim pour atténuer la couleur du texte (pas celle du fond) ;
  • ul pour souligner le texte ;
  • blink pour faire clignoter le texte (je déconseille) ;
  • reverse pour inverser les couleurs ;
  • italic pour mettre en italique ;
  • strike pour barrer le texte.

Pour les couleurs on peut choisir de ne renseigner qu’une couleur — auquel cas ça changera uniquement la couleur du texte — ou préciser deux valeurs, la première pour le texte, la seconde pour le fond. Les valeurs possibles sont nombreuses, certains formats dépendent de ce que ton terminal prend en charge :

  • les valeurs « classiques », textuelles sont normal, black, red, green, yellow, blue, magenta, cyan, white et default ;
  • une valeur numérique entre 0 et 255 (si le terminal supporte le mode ANSI 256) ;
  • une valeur hexadécimale, comme #ff0ab3 (là aussi si le terminal supporte les valeurs RGB 24 bits).
Tu veux aller plus loin et maîtriser pleinement les fondamentaux de Git ou être accompagné pour garantir la qualité de tes projets grâce à une bonne mise en place de Git ? On peut t’aider ou te former, il suffit de nous décrire ton besoin !