Voy a lanzar esta solución por ahí. Git hará esto. Ver esta publicación al respecto
Entonces, teóricamente, podrías hacer esto para convertir un árbol completo
cd root/of/tree
git init .
git add .
git commit -m "initial commit"
echo "* text eol=crlf" > .gitattributes
git rm --cached -r .
git reset --hard
Cambie crlfa lfsi quiere ir por el otro lado. NOTA: aún no has terminado, sigue leyendo
Escriba git statuspara ver qué archivos se verán afectados. Puede que tenga que agregar líneas como
*.jpg binary
*.png binary
*.gif binary
etc para .gitattributesevitar la conversión de ciertos archivos. También puede marcar explícitamente ciertos archivos como texto
*.md text
*.css text
Luego solo repita estas 2 líneas después de haber editado .gitattributes
git rm --cached -r .
git reset --hard
Luego, use git statusnuevamente para ver qué archivos se cambiarán. Cuando esté seguro de que todos los archivos que desea afectar se enumeran para git statusluego confirmar
git add .
git commit -m "normalize line endings"
ahora revise todos los archivos nuevamente
git rm --cached -r .
git reset --hard
Ahora deberían tener cualesquiera que sean sus finales de línea deseados
** NOTA: Si ya estaba usando git, omita los primeros 3 comandos comandos de git. Si no estaba usando git ahora puede eliminar el .gitattributesarchivo y la .gitcarpeta.
** Haga una copia de seguridad de sus archivos: los git rm --cached -relimina a todos (aunque en teoría están en su repositorio de git (la carpeta .git), así es como se restauran con el último comando git reset --hard. Es solo que, dado que los archivos se eliminan, probablemente sea mejor respaldarlos arriba.