Ce que fait gitattributes
.gitattributes applique des paramètres par chemin : fins de ligne, drivers de diff et merge, filtres d'export, déclarations d'encodage. Contrairement à .gitignore, les attributes s'appliquent aux fichiers suivis et sont honorés par toute l'équipe.
Fins de ligne
# .gitattributes
* text=auto
*.sh text eol=lf
*.bat text eol=crlf
*.png binary
core.autocrlf vs gitattributes
core.autocrlf est un fallback par développeur. Gitattributes fait autorité et est partagé.
Export-ignore
tests/ export-ignore
.github/ export-ignore
.gitignore export-ignore
Makefile export-ignore
Export-subst
VERSION export-subst
Dans VERSION : $Format:%H %ci$.
Encodage de l'arbre de travail
*.cs working-tree-encoding=UTF-16LE-BOM
*.txt working-tree-encoding=Shift_JIS
Drivers de filtre
[filter "redact"]
clean = sed 's/SECRET=.*/SECRET=***REDACTED***/'
smudge = cat
*.env filter=redact
Macros
[attr]docfile diff=markdown export-ignore
README.md docfile
Erreurs courantes
Ajouter * text=auto sans renormaliser laisse des fins de ligne mixtes dans le repo.