Vou lançar essa solução por aí. Git fará isso. Veja este post sobre isso
Então, teoricamente, você poderia fazer isso para converter uma árvore inteira
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
Altere crlf
para lf
se quiser ir para o outro lado. NOTA: você ainda não terminou, continue lendo
Digite git status
para ver quais arquivos serão afetados. Você pode ter que adicionar linhas como
*.jpg binary
*.png binary
*.gif binary
etc para .gitattributes
para evitar a conversão de determinados arquivos. Você também pode marcar alguns arquivos como texto
*.md text
*.css text
Em seguida, repita essas duas linhas depois de editar .gitattributes
git rm --cached -r .
git reset --hard
Em seguida, use git status
novamente para ver quais arquivos serão alterados. Quando tiver certeza de que todos os arquivos afetados estão listados por git status
, então confirme
git add .
git commit -m "normalize line endings"
agora verifique todos os arquivos novamente
git rm --cached -r .
git reset --hard
Eles agora devem ter o que você quiser com as terminações de linha
** NOTA: Se você já estava usando o git, pule os primeiros 3 comandos git. Se você não estava usando o git, agora pode excluir o arquivo .gitattributes
e a pasta .git
.
** Faça backup de seus arquivos: o git rm --cached -r
exclui todos eles (embora eles estejam, teoricamente, no seu git repo (a pasta .git), que é como eles são restaurados pelo último comando git reset --hard
. estão sendo deletados, provavelmente é melhor fazer backup deles.