Git protip : un log graphique qui déboîte
Par Maxime Bréhin • Publié le 29 août 2022

Mise à jour le 23 septembre 2022, 09:51

Le log, c’est cet outil Git qui nous affiche l’historique des commits. On en a généralement besoin pour :

  • afficher les derniers commits créés, histoire de savoir où on en est dans notre travail ;
  • visualiser les branches en cours et leurs évolutions respectives.

Le souci, c’est que le log « classique », ça ressemble à ça :

Log classique avec une verbosité généralement inutile

Ça affiche les commits du plus récent (en haut) au plus ancien (en bas), sans indication de branche, avec tout le détail du commit :

  • identifiant complet sur 40 caractères,
  • message complet (potentiellement sur plusieurs lignes),
  • date et nom du responsable du commit,
  • et des sauts de lignes histoire d’aérer tout ça.

Autant dire que ça n’est pas ultra efficace. Résultat, bien des gens se tournent par dépit vers des interfaces graphiques (on multiplie les outils). Git propose pourtant tout un tas d’options pour personnaliser l’affichage. Je te passe le détail de ces options ici pour m’intéresser à notre alias magique 🧙‍♂️ !

Avant ça, posons les informations et le format qu’on aimerait avoir pour faciliter notre lecture :

  • Concision : première ligne du message du commit, qui l'a produit et quand, identifiant abbrégé (pour faciliter son ré-emploi avec d’autres commandes) ;
  • Visuel : enchaînement graphique clair des commits, visualisation des branches, des tags, de notre position actuelle (HEAD).

On peut obtenir cet affichage du log avec les options suivantes :

git log --abbrev-commit --graph --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ar)%Creset'

Bon, clairement, tu ne voudras pas taper ça à chaque fois, donc autant en faire un alias. Chez Delicious Insights, on l’a nommé lg, facile à taper et proche de log. Pour l’enregistrer tu n’as qu’à copier/coller la ligne qui suit dans ton terminal :

git config --global alias.lg "log --graph --abbrev-commit --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset'"

Le rendu est nettement plus agréable et efficace. Les options restent disponibles. On peut ainsi étendre la visualisation aux branches par exemple en faisant un git lg --branches (en prenant le même historique que pour l’exemple en début d’article).

Avec l’alias, on obtient un affichage largement équivalent à ce que proposent les interfaces graphiques

Si tu veux tout savoir sur le log, regarde cet autre article 👀.

Des astuces en veux-tu en voilà !

On a tout plein d’articles et de vidéos existants et encore beaucoup à venir. Pour ne rien manquer, tu devrais penser à t’abonner à notre newsletter, à notre chaîne YouTube, nous suivre sur Twitter ou encore mieux, à suivre notre formation du feu de dieu 🔥 : Git Total !

Découvrez nos cours vidéo ! 🖥

Nos cours vidéo sont un complément idéal et bon marché à nos articles techniques et formations présentielles. Autour de Git, de JavaScript et d’autres sujets, retrouvez des contenus de très grande qualité à des prix abordables, spécialement conçus pour lever vos plus gros points de blocage.