Warum benutzerdefinierte Diffs
Git's Standard-Diff ist Zeile fur Zeile auf Text. Fur binare Formate (PDF, DOCX, Bilder) und strukturierten Text, bei dem Zeilen-Diffs nicht hilfreich sind, produzieren benutzerdefinierte Diff-Treiber etwas, das Menschen lesen konnen.
Eingebaute Sprachtreiber
# .gitattributes
*.py diff=python
*.rs diff=rust
*.go diff=golang
Benutzerdefinierten Treiber definieren
[diff "exif"]
textconv = exiftool
cachetextconv = true
*.jpg diff=exif
*.png diff=exif
Wort-Diff fur Prosa
[diff "tex"]
wordRegex = "[^[:space:]\\\\]+"
Binar-Erkennung uberschreiben
*.svg diff
*.pdf -diff
*.bin binary
Reales Beispiel: SQL-Dumps
[diff "sqldump"]
textconv = "sed 's/^INSERT INTO/\\nINSERT INTO/g'"
Haufige Fehler
Treiber in ~/.gitconfig sind lokal — Kollegen sehen kein Diff.
Vollstandig externer Diff
GIT_EXTERNAL_DIFF=meld git diff
git config diff.tool meld
git difftool