Mieux utiliser Git avec des logs clair

30 mars 2020

Ça y est, tu as développé ta super fonctionnalité, et tu voudrais donc la « pousser ». Tu t’apprêtes à faire un git pull suivi d’un git push sans vraiment réfléchir, car c’est comme ça que tu as appris à faire (et tu serres les fesses et en priant que tout ce passe bien). Où alors tu maîtrises un peu plus Git et tu fais un rebase, juste au cas où, comme ça tu es sur d’être à jour… Mais avais-tu vraiment besoin de faire cette action ?

La plupart du temps, ces opérations se passent bien (ouf 😅) ! Mais les autres fois ?
Par exemple quand il y a un merge et que tu ne comprends pas bien pourquoi, que dans ton rebase il y a 10 commits au lieu de seulement les 3 que tu as faits…

Si je te disais que tu pourrais être plus serein pour réaliser ces opérations ?

De mon expérience le meilleur moyen pour voir les changements effectués en locale (sur ton ordi) ainsi que ceux distants, passe par les logs de git en mode graphique.

Personnellement je ne fais aucune opération avec git sans avoir au préalable affiché le graph, sans ça, je me sens totalement aveugle.

Un exemple en image

Le log classique de git, avec la commande git log donne ceci dans un terminal :

Un exemple du rendu de la commande git log

La commande log dispose de plusieurs options que tu peux voir dans la documentation officielle.

Ces options te permettent par exemple d’avoir un log plus sympa, mais surtout plus « utile » que celui que je t’ai montré précédemment, par exemple : 

Un exemple du rendu de la commande git log avec des options

Ici, tu peux voir que l’affichage est plus condensé, c’est utile lorsque tu veux afficher plus d’une dizaine de commits.
Ensuite tu peux voir que tu disposes de plein d’informations pratiques sur une seule ligne.

Ce qui donne dans l’ordre :

  • le numéro de commit en version courte
  • le pointeur présent sur le commit s’il y en a un
  • le message de commit
  • le moment quand à été crée le commit
  • l’auteur tu commit

On voit même les « branches » se détacher du graphique 🙂.

La commande pour avoir un log qui ressemble à ça est : 

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'

Je te conseille de la mettre dans tes alias git ou ceux de ton terminal pour ne pas avoir à la rechercher quand tu en auras besoin 😉.

À retenir

Si tu veux commencer à arrêter d’utiliser git sans vraiment comprendre ce que tu fais, ça passe clairement par l’affichage systématique des logs en mode graphique avant (presque) chaque opération, de cette manière tu verras l’impact de chaque changement et tu comprendras mieux ce que fait réellement une commande quand tu l’exécuteras.