Git protip : lister efficacement les branches
Par Maxime Bréhin • Publié le 28 novembre 2022 • 2 min

Ah, les branches dans Git… Combien de fois ai-je vu des branches « traîner » chez mes clients, jamais supprimées car simplement mal analysées… Et cette « astuce » plus que douteuse qui consiste, quand le nom de la branche qu’on souhaite créer existe déjà, à ajouter un suffixe numérique 🤦.

Il est donc temps de faire les choses bien ! En plus, ça ne demande pas franchement beaucoup d’efforts. Il faut surtout savoir déterminer les branches existantes, leur rapport éventuel avec une branche distante (tracking), et leur état vis-à-vis de cette dernière (nouveaux commits locaux ou distants, branche distante supprimée).

Voici la commande tant attendue, tellement attendue que tu en as marre de lire mes phrases à rallonge qui tardent dans la transmission de cette information essentielle, que dis-je quasi vitale à ton existence aujourd’hui malheureuse mais très bientôt heureuse d’utilisateur·rice Git… Le suspense est à son comble, la voici… La voilà… Tu trépignes d’impatience (je le sais), mais ne doute pas de mon souhait profond de te fournir la raison même pour laquelle tu lis en ce moment ces lignes, car si tu n’étais pas là pour ça, tu serais très certainement incapable de lire ce paragraphe qui n’en finit plus, résultat d’un craquage immense en cette fin de semaine pluvieuse de novembre 2022, année riche en articles et protips comme tu l’as peut-être déjà constaté :

git branch -avv

Tant qu’à partir dans des délires psychédéliques, j’en profite pour te donner le moyen mnémotechnique ultime pour retenir ce combo d’options : « AVV Jules César ».

Concrètement, ça donne quoi ?

Ça t’affiche les branches locales, les branches distantes (ça c’est l’option -a), l’information du dernier commit désigné par la branche (identifiant / SHA-1 et première ligne du message, ça c’est l’option -v) et enfin, le rapport entre nos branches locales et les branches distantes (l’autre option -v). Vois ce que ça donne :

Exemple d’affichage de "git branch -avv"

Note les indications après le nom des branches distantes associées aux branches locales : on observe les infos gone, behind X et ahead X. Respectivement cela signifie que la branche distante a été supprimé sur le serveur (gone), que la branche locale n’a pas appliqué/récupéré X commits (behind) ou qu’au contraire elle a avancé de X nouveaux commits qui ne sont pas encore partagés/pushés (ahead). On peut trouver des situations de désynchronisation dans les 2 sens en même temps lorsqu’on a travaillé sur une branche localement et qu’on récupère les infos de la branche distante (git fetch) après qu’un·e collègue ait bossé dessus et pushé.

Avec ça, plus d’excuse pour ne pas effectuer un suivi précis de tes branches, et le cas échéant un peu de nettoyage 😉!

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 !