2012-09-09 15 views
6

Según this question, entiendo que core.autocrlf = true en git causará las traducciones de CRLF a LF.¿un repositorio git tiene su propio valor local para core.autocrlf que anula el global?

Sin embargo, cuando escriba: git config core.autocrlf

veo: falsas

Sin embargo, cuando I etapa archivos modificados que ya están en el repositorio, sigo teniendo estas advertencias:

Warning: CRLF will be replaced by LF in File1.X. 
The file will have its original line endings in your working directory. 

Supongo que la copia repo del archivo ya está configurada en "autocrlf = true".

Preguntas: A. ¿Cómo consulto si un archivo o git repo ya está forzando AutoCrlf? B. ¿Cómo desactivo el autocrlf?

Respuesta

6

Git le permite anular su configuración global por repositorio con un archivo .gitattributes. Lo coloca en el directorio raíz del repositorio y se convierte en un archivo comprometido como parte del repositorio. Sospecho que esto está sucediendo en tu caso.

Github tiene una buena página en esto: https://help.github.com/articles/dealing-with-line-endings

En resumen, se puede utilizar el atributo de texto para ajustar los finales de línea para una extensión de archivo en particular. Por ejemplo, obligando a los archivos sln CRLF requeriría la siguiente línea en un archivo .gitattributes:

# Declare files that will always have CRLF line endings on checkout. 
*.sln text eol=crlf 
+1

derecho ... así que ... ¿qué podría poner en '.gitattributes' que sería el equivalente a' núcleo .autocrlf = false' en mi configuración global? –

+0

¿Sería lo siguiente en '.gitattributes' ser equivalente a' core.autocrlf = false'? '* -text' –

+0

No. .gitattributes también afecta la capacidad de fusionarse si elimina el binario. – jhclark

Cuestiones relacionadas