Vou jogar esta solução lá fora. 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
Mude crlfpara lfse você quiser ir para o outro lado. NOTA: você ainda não terminou, continue lendo
Digite git statuspara ver quais arquivos serão afetados. Pode ser necessário adicionar linhas como
*.jpg binary
*.png binary
*.gif binary
etc para .gitattributesevitar a conversão de certos arquivos. Você também pode marcar explicitamente certos arquivos como texto
*.md text
*.css text
Em seguida, basta repetir essas 2 linhas depois de editar .gitattributes
git rm --cached -r .
git reset --hard
Em seguida, use git statusnovamente para ver quais arquivos serão alterados. Quando tiver certeza de que todos os arquivos que você deseja afetar estão listados git status, confirme
git add .
git commit -m "normalize line endings"
agora verifique todos os arquivos novamente
git rm --cached -r .
git reset --hard
Agora eles devem ter quaisquer que sejam os finais de linha desejados.
** NOTA: Se você já estava usando o git, pule os 3 primeiros comandos. Se você não estava usando o git, agora pode excluir o .gitattributesarquivo e a .gitpasta.
** Faça backup dos seus arquivos: git rm --cached -reles serão excluídos (embora eles estejam teoricamente no seu repositório git (a pasta .git), que é como eles são restaurados pelo último comando git reset --hard. acima.