Par Anonyme (non vérifié) , 29 avril 2026

Pourquoi des diffs personnalisés

Le diff par défaut de Git est ligne par ligne en texte. Pour les formats binaires (PDF, DOCX, images) et le texte structuré où les diffs par ligne ne sont pas utiles (JS minifié, dumps SQL générés), les drivers de diff personnalisés produisent quelque chose que les humains peuvent lire.

Drivers de langage intégrés

# .gitattributes
*.py    diff=python
*.rs    diff=rust
*.go    diff=golang

Définir un driver personnalisé

[diff "exif"]
textconv = exiftool
cachetextconv = true
*.jpg diff=exif
*.png diff=exif

Diff au niveau du mot pour la prose

[diff "tex"]
wordRegex = "[^[:space:]\\\\]+"

Override de détection binaire

*.svg   diff
*.pdf   -diff
*.bin   binary

Exemple réel : dumps SQL

[diff "sqldump"]
textconv = "sed 's/^INSERT INTO/\\nINSERT INTO/g'"

Erreurs courantes

Les drivers configurés dans ~/.gitconfig sont locaux — les collègues ne voient aucun diff.

Diff externe entièrement

GIT_EXTERNAL_DIFF=meld git diff
git config diff.tool meld
git difftool