Saya akan membuang solusi ini di luar sana. Git akan melakukan ini. Lihat posting ini tentang itu
Jadi secara teoritis Anda bisa melakukan ini untuk mengubah seluruh pohon
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
Ubah crlfke lfjika Anda ingin pergi ke arah lain. CATATAN: Anda belum selesai, terus membaca
Ketik git statusuntuk melihat file mana yang akan terpengaruh. Anda mungkin harus menambahkan baris seperti
*.jpg binary
*.png binary
*.gif binary
dll untuk .gitattributesmenghindari konversi file tertentu. Anda juga dapat secara eksplisit menandai file tertentu sebagai teks
*.md text
*.css text
Kemudian ulangi saja 2 baris ini setelah Anda mengedit .gitattributes
git rm --cached -r .
git reset --hard
Kemudian gunakan git statuslagi untuk melihat file mana yang akan diubah. Ketika Anda yakin semua file yang Anda inginkan terpengaruh terdaftar git statussaat itu komit
git add .
git commit -m "normalize line endings"
sekarang periksa semua file lagi
git rm --cached -r .
git reset --hard
Mereka sekarang harus memiliki apa pun yang Anda inginkan
** CATATAN: Jika Anda sudah menggunakan git, lewati 3 perintah pertama perintah git. Jika Anda tidak menggunakan git, Anda sekarang dapat menghapus .gitattributesfile dan .gitfolder.
** Cadangkan file Anda: git rm --cached -rmenghapus semuanya (walaupun secara teoritis ada di git repo Anda (folder .git) yang merupakan cara mereka dipulihkan oleh perintah terakhir git reset --hard. Hanya karena file dihapus, mungkin yang terbaik adalah mendukungnya naik.