Esa configuración durante el proceso de instalación de msysgit está realmente aquí para arreglar el valor de core.autocrlf
config.
core.autocrlf
Si es verdad, hace git convertir CRLF
al final de las líneas en archivos de texto a LF
al leer del sistema de ficheros, y convertir a la inversa cuando se escribe en el sistema de archivos.
La variable se puede establecer en 'input
', en cuyo caso la conversión solo se produce al leer desde el sistema de archivos, pero los archivos se escriben con LF
al final de las líneas.
Actualmente, las rutas a considerar como "texto" (es decir, estar sujetas al mecanismo autocrlf) se deciden puramente en función de los contenidos.
Me gustaría insistir en no tratar de convertir cualquier cosa automágicamente, los efectos secundarios son demasiado importantes (en términos de conflicto potencial fusión, especialmente en el desarrollo distribuido con diferentes ambientes)
Si sus herramientas puede manejar la terminación de línea al estilo Unix, debe configurarlas para producir líneas Unix, que luego pueden leerse en Windows (VS2008, Notepad ++, ...) y Unix por igual, y pueden ser procesadas por cualquier 'sh' Git-scripts.
Pero con core.autocrlf
establecido en falso, la decisión de transformar una terminación de línea de texto será una explícita voluntaria, no un efecto secundario de fondo invisible.
Ver más en "How line ending conversions work with git core.autocrlf
between different operating systems"
| Resulting conversion when | Resulting conversion when
| committing files with various | checking out FROM repo -
| EOLs INTO repo and | with mixed files in it and
| core.autocrlf value: | core.autocrlf value:
--------------------------------------------------------------------------------
File | true | input | false | true | input | false
--------------------------------------------------------------------------------
Windows-CRLF | CRLF -> LF | CRLF -> LF | as-is | as-is | as-is | as-is
Unix -LF | as-is | as-is | as-is | LF -> CRLF | as-is | as-is
Mac -CR | as-is | as-is | as-is | as-is | as-is | as-is
Mixed-CRLF+LF | as-is | as-is | as-is | as-is | as-is | as-is
Mixed-CRLF+LF+CR | as-is | as-is | as-is | as-is | as-is | as-is
¡Gracias! Continuaré con la terminación de línea Unix. –
No veo cómo se puede obtener un conflicto de fusión basado en las terminaciones de línea. En caso de que tenga autocrlf True, si obtiene de alguien que tiene CRLF localmente, ¿las terminaciones no se convertirían a LF (antes de la fusión)? (También tendría cualquier CRLF convertido a LF si acaba de enviar localmente) – RJFalconer
@BlueNovember: el razonamiento es que no se puede garantizar que cada Git en cada entorno tenga esa configuración establecida correctamente. Incluso si no tiene conflictos en su entorno, puede causar problemas no sospechados en otros clientes remotos de Git. – VonC