Cosa fa gitattributes
.gitattributes applica impostazioni per percorso: fine riga, driver diff e merge, filtri di export, dichiarazioni di codifica e comportamento di merge. A differenza di .gitignore, gli attributi si applicano ai file tracciati.
Fine riga
# .gitattributes
* text=auto
*.sh text eol=lf
*.bat text eol=crlf
*.png binary
Dopo aver aggiunto questo file, eseguire git add --renormalize ..
core.autocrlf vs gitattributes
core.autocrlf e fallback per sviluppatore. Gitattributes e autorevole e condiviso.
Export-ignore
tests/ export-ignore
.github/ export-ignore
.gitignore export-ignore
Makefile export-ignore
Export-subst
VERSION export-subst
Codifica del working tree
*.cs working-tree-encoding=UTF-16LE-BOM
*.txt working-tree-encoding=Shift_JIS
Driver di filtro
[filter "redact"]
clean = sed 's/SECRET=.*/SECRET=***REDACTED***/'
smudge = cat
*.env filter=redact
Macro
[attr]docfile diff=markdown export-ignore
README.md docfile
Errori comuni
Aggiungere * text=auto senza rinormalizzare lascia fini riga miste nel repo.