El .git/config
Se pueden anular localmente por ~/.gitconfig
.
Por lo tanto, como parte del script de compilación, Makefile o provision, puede proponer el cambio a los usuarios en su ~/.gitconfig
, o cargar el script local .gitconfig
a través del git config
.
Por ejemplo, crear nuevos .gitconfig
con algunos ajustes, y cargarlo por:
git config --local include.path "/path/to/.gitconfig"
o pedir a los usuarios a tener en sus ~/.gitconfig
estas líneas:
[include]
path = .gitconfig
Si está utilizando Vagrant como parte de su distribución de código, puede cargar git config desde Vagrantfile
por:
system('GIT_TRACE=1 git config --local include.path "$(git rev-parse --show-toplevel)/git/gitconfig"');
luego confirme su configuración de git en git/gitconfig
, de modo que cada vez que los usuarios ejecuten el aprovisionamiento de su VM, este archivo se cargará automáticamente para su git en el equipo host (p. Ej. para exigir que core.filemode
se deshabilite, por lo que Windows no tendrá ningún problema con los permisos de archivos).
Para forzar los finales de línea para los usuarios, debe utilizar .gitattributes
lugar que debe trabajar fuera de la caja. Sintaxis de ejemplo para utilizar los finales de línea Unix (LF
):
# Drupal git normalization
# @see https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html
# @see https://www.drupal.org/node/1542048
# Define text file attributes.
# - Treat them as text.
# - Ensure no CRLF line-endings, neither on checkout nor on checkin.
# - Detect whitespace errors.
# - Exposed by default in `git diff --color` on the CLI.
# - Validate with `git diff --check`.
# - Deny applying with `git apply --whitespace=error-all`.
# - Fix automatically with `git apply --whitespace=fix`.
*.css text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.html text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2 diff=html
*.js text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
*.json text eol=lf whitespace=blank-at-eol,-blank-at-eof,-space-before-tab,tab-in-indent,tabwidth=2
# Auto-detect text files, ensure they use LF.
* text=auto eol=lf
# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.gz -text diff
Véase también http://stackoverflow.com/questions/2332349/best-practices-for-cross-platform-git-config: es posible que tenga una respuesta para agregar a esta pregunta similar. – VonC
gracias, pero estoy un poco preocupado por toda esta negatividad contra autocrlf, ¿por qué no eliminar esta característica si no funciona?O los creadores de esta función son malentendidos o hicieron un experimento fallido con ella y debería eliminarse para evitar que más personas pierdan el tiempo (leyendo la página del hombre oscuro, haciendo preguntas, personas respondiendo esas preguntas, etc.) – nraynaud