Saya mencoba membuat git tidak mengubah akhir baris apa pun untuk operasi apa pun. Sayangnya, tampaknya demikian tidak peduli apa. Saya telah menguranginya menjadi kasus uji berikut, yang memiliki mekanisme berbeda untuk menonaktifkan perilaku ini sebanyak yang dapat saya temukan.
- Mulailah dengan dua mesin (komputer Windows = A, komputer Linux = B)
- Di kedua mesin:
git config --global core.autocrlf false - Di kedua mesin:
git config --global core.eol crlf(untuk berjaga-jaga)
- Buat repositori baru di A. Dari folder kosong:
git init --shared(lalu perlihatkan.gitdirektori yang dibuat )- Buat file baru
.gitignoredi repositori - Buat file baru
.gitattributesdi repositori dengan satu baris:* -text git add ., lalugit commit -m "initial commit"untuk menyiasatinya, misalnya ini .git branch master_recv- Tambahkan remote
- Buat file baru
document.txtdi repositori yang berisi CRLF - Komit:,
git add -Alalugit commit -m "<something>" - Perhatikan bahwa A
document.txtmasih berisi CRLF (dan menghapusnya dan mengatur ulang dengan--hardmengembalikan versi yang masih dengan CRLF)
- SCP seluruh direktori ke komputer B
- Tambahkan file baru yang
new fileberisi CRLF - Melakukan:
git add -Alalugit commit -m "<something>" - Perhatikan bahwa B
document.txtdan Bnew filekeduanya masih mengandung CRLF
- Tarik master B ke A:
git pull <remote> master:master_recv - A
document.txttelah berubah menjadi LF. File yang ditambahkannew filejuga berisi LF.
Masalah tidak terjadi jika B adalah mesin Windows.


core.autocrlfselalu salah? Sepertinya Anda sudah memiliki\nakhiran baris di repositori Anda? Tidak ada pengaturan untuk diubah\ndalam repositori Anda ke\r\ndalam direktori kerja Anda.