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 crlf
ke lf
jika Anda ingin pergi ke arah lain. CATATAN: Anda belum selesai, terus membaca
Ketik git status
untuk melihat file mana yang akan terpengaruh. Anda mungkin harus menambahkan baris seperti
*.jpg binary
*.png binary
*.gif binary
dll untuk .gitattributes
menghindari 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 status
lagi untuk melihat file mana yang akan diubah. Ketika Anda yakin semua file yang Anda inginkan terpengaruh terdaftar git status
saat 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 .gitattributes
file dan .git
folder.
** Cadangkan file Anda: git rm --cached -r
menghapus 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.