Gestión de final de línea en Git

Creo que no es la primera vez que te cuento que, habitualmente, en las empresas del sector los equipos se plataforman con sistemas operativos Windows. En Windows las líneas de código finalizan con un retorno de carro y un salto de línea, CRLF, pero en Linux y Mac, dichos finales se representan únicamente con saltos de línea, LF. En la gestión de un proyecto donde los programadores usan distintos sistemas operativos, o simplemente deseas mantener un tipo de fin de línea distinto al del sistema operativo que estas usando en el desarrollo, puede ser muy frustrante gestionar los cambios entre versiones de código. Esto se debe a que Git interpretará cambios en cada línea del código, pues donde había simplemente LF, tu editor colocó CRLF, y no podrás discernir los cambios reales. Git, sin embargo, dispone de una configuración para gestionar estos casos relativos a los finales de línea, core.autocrlf.

Para ver la configuración actual en este parámetro debes usar el siguiente comando de Git:

git config --get core.autocrlf

Puedes ajustar esta configuración con los valores true, input o false. A continuación te muestro como ajustarla al valor input.

git config core.autocrlf input

Déjame que te indique a continuación como se comportan los comandos git checkout y git add con cada uno de los tres valores que puedes usar en esta configuración:

Si lo configuras a true

  • git checkout convierte LF a CRLF
  • git add convierte CRLF a LF

Si lo configuras a input

  • git checkout no realiza ninguna conversión
  • git add convierte CRLF a LF

Si lo configuras a false

  • git checkout no realiza ninguna conversión
  • git add no realiza ninguna conversión

Como habrás deducido, este último valor, false, es el ajuste correcto para proyectos que únicamente se gestionarán en sistemas Windows.