Knowledge Base

¿Qué es esto?

git: Evitar que git ignore las terminaciones de línea como modificaciones en los ficheros

10/08/2015 - 17/12/2018 -  Comentarios - git Ficheros Normalizar finales de línea

Se puede hacer a nivel local o a nivel de repositorio. En mi caso hasta que no se hizo a nivel de repositorio no se resolvió el problema (Con un UNIX, un Windows, y dos linux).

Para hacerlo en nivel local:

En windows hay que ejecutar:

git config --global core.autocrlf true

En linux hay que ejecutar:

git config --global core.autocrlf input

Para hacerlo a nivel de repositorio

https://help.github.com/articles/dealing-with-line-endings/

En resumen lo que hace es:

- Se crea un fichero .gitattributes dónde se especifican qué ficheros hay que normalizar y cuales no (porque son binarios o porque no es necesario por la razón que sea). Aquí un ejemplo que funcionó:

# Set the default behavior, in case people don't have core.autocrlf set.

* text=auto

# Declaramos las extensiones de fichero que hay que normalizar. Se especifican más extensiones de las que en principio tendríamos que usar,

# por si acaso

*.c text

*.h text

*.txt text

*.css text

*.js text

*.po text

*.shtml text

*.html text

*.php text

*.jsp text

*.jspx text

*.aspx text

# Declare files that will always have CRLF line endings on checkout.

*.sln text eol=crlf

*.c text eol=crlf

*.h text eol=crlf

*.txt text eol=crlf

*.css text eol=crlf

*.js text eol=crlf

*.po text eol=crlf

*.shtml text eol=crlf

*.html text eol=crlf

*.php text eol=crlf

*.jsp text eol=crlf

*.jspx text eol=crlf

*.aspx text eol=crlf

# Especificamos todos los ficheros binarios que no se normalizarían

*.ico binary

*.png binary

*.jpg binary

*.jpeg binary

*.gif binary

*.pdf binary

*.doc binary

*.docx binary

*.ppt binary

*.pptx binary

*.xls binary

*.xlsx binary

*.zip binary

*.rar binary

*.exe binary

*.7z binary

- Se hace commit del fichero .gitattributes

- Se añaden todos los ficheros modificados si los hubiera y se hace commit:

git add . -u

git commit -m "Saving files before refreshing line endings"

- Se eliminan todos los ficheros del local:

git rm --cached -r .

- Se vuelven a bajar al repositorio:

git reset --hard

- En este punto nos los detectará todos como modificados. Hay que añadirlos, commitearlos y volverlos a subir:

git add .

git commit -m "I normalize the line endings for this branch"