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"