Qué hace gitattributes
.gitattributes aplica configuraciones por ruta: finales de línea, drivers de diff y merge, filtros de export, declaraciones de codificación. A diferencia de .gitignore, los attributes aplican a archivos rastreados y son honrados por todo el equipo.
Finales de línea
# .gitattributes
* text=auto
*.sh text eol=lf
*.bat text eol=crlf
*.png binary
Tras añadir este archivo, ejecuta git add --renormalize ..
core.autocrlf vs gitattributes
core.autocrlf es un fallback por desarrollador. Gitattributes es autoritativo y compartido.
Export-ignore
tests/ export-ignore
.github/ export-ignore
.gitignore export-ignore
Makefile export-ignore
Export-subst
VERSION export-subst
Dentro de VERSION: $Format:%H %ci$.
Codificación de árbol de trabajo
*.cs working-tree-encoding=UTF-16LE-BOM
*.txt working-tree-encoding=Shift_JIS
Drivers de filtro
[filter "redact"]
clean = sed 's/SECRET=.*/SECRET=***REDACTED***/'
smudge = cat
*.env filter=redact
Macros
[attr]docfile diff=markdown export-ignore
README.md docfile
Errores comunes
Añadir * text=auto sin renormalizar deja finales mezclados en el repo. Olvidar que binary es un macro.