Dan tanpa alat tambahan apa pun (seperti 'fromdos', 'dos2unix', dll.):
git filter-branch --force --tree-filter 'git ls-files | xargs file | sed -n -e "/.*: .*text.*/s/\(.*\): .*/\1/p" | xargs -0 sed -i"" -e "s/"$(printf "\015")"$//"' --tag-name-filter cat -- --all
Crossplatform (OS X, FreeBSD, Linux) analog yang berguna 'fromdos', 'dos2unix':
sed -i'' -e 's/'"$(printf '\015')"'$//'
Mungkin berguna 'unix2dos':
sed -i '' -e 's|$|'"`printf '\015'`"'|' file.name
Jika Anda benar-benar memastikan apa yang Anda lakukan, Anda dapat menggunakan perintah inline sederhana ini untuk menghapus "/ r" dari semua file di direktori saat ini ".":
find . -type f -exec sed -i'' -e 's/'"$(printf '\015')"'$//' {} \;
git filter-branch --tree-filter 'git ls-files -z | xargs -0 dos2unix' -- --all
. Bendera-z
dan-0
memberitahugit ls-files
danxargs
untuk mencetak dan menafsirkannull
sebagai akhir baris.