Por Anónimo (no verificado) , 29 Abril 2026

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.