Pesan-pesan ini disebabkan oleh nilai default yang salah core.autocrlfpada Windows.
Konsepnya autocrlfadalah untuk menangani konversi akhir baris secara transparan. Dan itu benar!
Berita buruk : nilai harus dikonfigurasi secara manual.
Berita bagus : itu hanya boleh dilakukan SATU kali per instalasi git (per pengaturan proyek juga mungkin).
Bagaimana cara autocrlfkerjanya :
core.autocrlf=true: core.autocrlf=input: core.autocrlf=false:
repo repo repo
^ V ^ V ^ V
/ \ / \ / \
crlf->lf lf->crlf crlf->lf \ / \
/ \ / \ / \
Di sini crlf= penanda end-of-line win-style, lf= unix-style (dan mac osx).
(pre-osx crin tidak terpengaruh untuk salah satu dari tiga opsi di atas)
Kapan peringatan ini muncul (di bawah Windows)
- autocrlf= truejika Anda memiliki gaya unix lfdi salah satu file Anda (= Jarang),
- autocrlf= inputjika Anda memiliki gaya menang crlfdi salah satu file Anda (= hampir SELALU),
- autocrlf= false- TIDAK PERNAH!
Apa artinya peringatan ini
Peringatan " LF akan digantikan oleh CRLF " mengatakan bahwa Anda (memiliki autocrlf= true) akan kehilangan LF gaya unix Anda setelah siklus commit-checkout (ini akan digantikan oleh CRLF gaya windows). Git tidak mengharapkan Anda untuk menggunakan LF unix-style di bawah windows.
Peringatan " CRLF akan digantikan oleh LF " mengatakan bahwa Anda (memiliki autocrlf= input) akan kehilangan CRLF gaya-windows setelah siklus komit-checkout (akan diganti dengan LF unix-style). Jangan gunakan di inputbawah windows.
Namun cara lain untuk menunjukkan cara autocrlfkerjanya
1) true: x -> LF -> CRLF
2) input: x -> LF -> LF
3) false: x -> x -> x
di mana x adalah CRLF (gaya windows) atau LF (gaya unix) dan panah mewakili
file to commit -> repository -> checked out file
Bagaimana cara memperbaiki
Nilai default untuk core.autocrlfdipilih selama instalasi git dan disimpan dalam gitconfig ( %ProgramFiles(x86)%\git\etc\gitconfig) seluruh sistem ( ). Juga ada (mengalir dalam urutan berikut):
- gitconfig "global" (per-pengguna) terletak di ~/.gitconfig, gitconfig
"global" (per-pengguna) lain di $XDG_CONFIG_HOME/git/configatau $HOME/.config/git/configdan
- " gitconfig " lokal "(per-repo) di .git/configdalam direktori kerja.
Jadi, tulis git config core.autocrlfdi dir yang berfungsi untuk memeriksa nilai yang saat ini digunakan dan
- tambahkan autocrlf=falseke solusi gitconfig # per-sistem di seluruh sistem
- git config --global core.autocrlf false # solusi per pengguna
- git config --local core.autocrlf false # solusi per proyek
Peringatan
- git configpengaturan dapat ditimpa oleh gitattributespengaturan.
- crlf -> lfKonversi hanya terjadi ketika menambahkan file baru, crlffile yang sudah ada di repo tidak terpengaruh.
Moral (untuk Windows):
- use core.autocrlf= truejika Anda berencana untuk menggunakan proyek ini di bawah Unix juga (dan tidak mau mengkonfigurasi editor / IDE Anda untuk menggunakan ujung garis unix),
- use core.autocrlf= falsejika Anda berencana untuk menggunakan proyek ini di bawah Windows saja ( atau Anda telah mengkonfigurasi editor / IDE Anda untuk menggunakan akhiran baris unix),
- tidak pernah menggunakan core.autocrlf= inputkecuali Anda memiliki alasan yang baik untuk ( misalnya jika Anda menggunakan utilitas unix di bawah windows atau jika Anda mengalami masalah makefiles),
PS Apa yang harus dipilih ketika menginstal git untuk Windows?
Jika Anda tidak akan menggunakan salah satu proyek Anda di bawah Unix, jangan setuju dengan opsi pertama default. Pilih yang ketiga ( Periksa apa adanya, komit apa adanya ). Anda tidak akan melihat pesan ini. Pernah.
PPS Preferensi pribadi saya adalah mengonfigurasi editor / IDE untuk menggunakan ujung Unix-style, dan pengaturan core.autocrlfke false.