Lire les logs de git avec la commande git log est une action assez systématique lorsque l’on travaille avec ce gestionnaire de versions.

Néanmoins, reconnaissons le, si c’est pratique, il devient vite chiant usant de remonter dans l’historique, et la vue n’est pas très synthétique.

Pour profiter d’une lecture des logs plus rapide, je vous propose la commande suivante bien pratique, que vous pourrez personnaliser à votre bon gré. Elle affiche chaque log sur une seule ligne, avec des couleurs, permettant une lecture beaucoup plus rapide

La commande git

git log --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit

Lisez plus bas pour créer un alias et ne pas avoir à vous la retaper à chaque fois…

Personnaliser votre commande

Les variables dans le format pretty

Les variables que vous pouvez afficher pour personnaliser vos logs :

  • %H : Hash du commit
  • %h : Hash abrégé du commit
  • %T : Arbre du hash
  • %t : Arbre du hash abrégé
  • %P : Hash parent
  • %p : Hash parent abrégé
  • %an : Nom de l’auteur
  • %ae : Email de l’auteur
  • %cn : Nom du committer
  • %ce : Email du commiter
  • %cd : Date du commit
  • %cr : Date relative du commit
  • %s : Sujet

Les couleurs et mise en forme dans le format pretty

Pour la mise en forme (couleur, gras) :

%C(couleur bold)XXX%Creset

Par exemple du rouge normal :

%C(red)XXX%Creset

Et du jaune gras :

%C(yellow bold)XXX%Creset

Alias git pour appeller cette commande

Si vous souhaitez utiliser git lg comme raccourci par exemple pour afficher les logs de la sorte :

git config --global alias.lg "log --color --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

A noter que si on revient loin dans l’historique, si vous avez beaucoup de branches, ç deviendra quasiment illisible…

Merci à Keirua pour cette astuce :)