Git protip : un diff sympa et efficace dans le terminal
Par Maxime Bréhin • Publié le 22 août 2022
• 1 min
Le diff classique fourni par Git nous donne tout un tas d’informations dont une partie n’est pas essentielle et a tendance à polluer l’affichage dans le terminal. Les points gênants sont principalement l’absence de démarcation claire entre fichiers et les modifications sur une ligne dont la différence est affichée sous forme de deux lignes (suppression/ajout), on peine alors à distinguer les éléments modifiés sur la ligne concernée (rappelle-toi le jeu des 7 différences).
On a regardé du côté des options de la commande diff et de la configuration, mais rien n’était pleinement satisfaisant. On a alors cherché un outil tiers qui nous facilite la vie dans le terminal, qui soit facile à installer et utiliser. C’est là qu’on a découvert diff-so-fancy.
L’installation se fait rapidement en une fois sur chaque machine. Différents procédés d’installation sont possibles :
- npm ;
- Homebrew ;
- Nix ;
- Dépôt communautaire Arch ;
- ppa:aos for Debian/Ubuntu Linux ;
- ou à défaut en clonant le dépôt Git et en renseignant le script dans le
$PATH
.
Ma méthode préférée — car c’est la plus portable — utilise npm :
npm install --global diff-so-fancy
Une fois l’installation faite, il faut demander à Git d’utiliser cet outil :
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
git config --global interactive.diffFilter "diff-so-fancy --patch"
On peut ensuite personnaliser les couleurs et certains comportements, mais le comportement par défaut est très largement suffisant.
Quand on a tout ça, voilà le type d’affichage qu’on obtient :
Maintenant, à toi de jouer 😉 !