Wyrzucę tam to rozwiązanie. Git to zrobi. Zobacz ten post na ten temat
Teoretycznie możesz to zrobić, aby przekonwertować całe drzewo
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
Zmień crlfna, lfjeśli chcesz iść w drugą stronę. UWAGA: jeszcze nie skończyłeś, czytaj dalej
Wpisz, git statusaby zobaczyć, które pliki zostaną zmienione. Może być konieczne dodanie linii takich jak
*.jpg binary
*.png binary
*.gif binary
itp., aby .gitattributesuniknąć konwersji niektórych plików. Możesz także wyraźnie oznaczyć niektóre pliki jako tekst
*.md text
*.css text
Następnie po prostu powtórz te 2 wiersze po zakończeniu edycji .gitattributes
git rm --cached -r .
git reset --hard
Następnie użyj git statusponownie, aby zobaczyć, które pliki zostaną zmienione. Gdy masz pewność, że wszystkie pliki, których dotyczy problem, zostaną wyświetlone, git statusa następnie zatwierdź
git add .
git commit -m "normalize line endings"
teraz sprawdź ponownie wszystkie pliki
git rm --cached -r .
git reset --hard
Powinny mieć teraz dowolne pożądane zakończenia linii
** UWAGA: Jeśli już korzystałeś z git, pomiń pierwsze 3 polecenia git. Jeśli nie korzystałeś z git, możesz teraz usunąć .gitattributesplik i .gitfolder.
** Twórz kopie zapasowe plików: git rm --cached -rusuwa je wszystkie (chociaż teoretycznie znajdują się one w twoim repozytorium git (folderze .git), w taki sposób są przywracane przez ostatnie polecenie git reset --hard. Właśnie dlatego, że pliki są usuwane, prawdopodobnie najlepiej jest je wykonać w górę.