Perche diff personalizzati
Il diff predefinito di Git e riga per riga sul testo. Per formati binari (PDF, DOCX, immagini) e testo strutturato dove i diff per riga non aiutano, i driver diff personalizzati producono qualcosa che gli umani possono leggere.
Driver di linguaggio integrati
# .gitattributes
*.py diff=python
*.rs diff=rust
*.go diff=golang
Definire un driver personalizzato
[diff "exif"]
textconv = exiftool
cachetextconv = true
*.jpg diff=exif
*.png diff=exif
Diff a livello parola per la prosa
[diff "tex"]
wordRegex = "[^[:space:]\\\\]+"
Override del rilevamento binario
*.svg diff
*.pdf -diff
*.bin binary
Esempio reale: dump SQL
[diff "sqldump"]
textconv = "sed 's/^INSERT INTO/\\nINSERT INTO/g'"
Errori comuni
Driver configurati in ~/.gitconfig sono locali — i colleghi non vedono diff. textconv pesanti senza cachetextconv rallentano ogni diff.
Diff esterno totalmente
GIT_EXTERNAL_DIFF=meld git diff
git config diff.tool meld
git difftool