peringatan: LF akan diganti oleh CRLF.
Bergantung pada editor yang Anda gunakan, file teks dengan LF tidak perlu disimpan dengan CRLF: editor terbaru dapat mempertahankan gaya eol. Tapi itu pengaturan konfigurasi git bersikeras mengubah mereka ...
Pastikan saja (seperti yang saya rekomendasikan di sini ):
git config --global core.autocrlf false
Dengan begitu, Anda menghindari transformasi otomatis, dan masih dapat menentukannya melalui .gitattributesfile dan core.eolarahan .
windows git "LF akan digantikan oleh CRLF"
Apakah peringatan ini mundur?
Tidak: Anda menggunakan Windows, dan git confighalaman bantuan menyebutkan
Gunakan pengaturan ini jika Anda ingin memiliki CRLFakhir baris di direktori kerja Anda meskipun repositori tidak memiliki akhir baris normal.
Seperti yang dijelaskan dalam " git mengganti LF dengan CRLF ", itu hanya akan terjadi pada checkout (tidak komit), dengan core.autocrlf=true.
repo
/ \
crlf->lf lf->crlf
/ \
Seperti disebutkan dalam Xiaopeng 's jawaban , bahwa peringatan adalah sama dengan:
peringatan: (Jika Anda memeriksanya / atau mengkloning ke folder lain dengan core.autocrlfkonfigurasi Anda saat ini ,) LF akan digantikan oleh CRLF
File akan memiliki akhiran baris aslinya di direktori kerja Anda (saat ini).
Sebagaimana disebutkan dalam git-for-windows/gitedisi 1242 :
Saya masih merasa pesan ini membingungkan, pesan dapat diperluas untuk memasukkan penjelasan yang lebih baik tentang masalah ini, misalnya: "LF akan diganti oleh CRLF file.jsonsetelah menghapus file dan memeriksanya lagi".
Catatan: Git 2.19 (September 2018), saat menggunakan core.autocrlf, peringatan palsu "LF akan digantikan oleh CRLF" sekarang ditekan .
Seperti komentar quaylar dengan benar , jika ada konversi pada komit, itu hanya untuk .LF
Peringatan khusus itu " LF will be replaced by CRLF" berasal dari convert.c # check_safe_crlf () :
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.
The file will have its original line endings
in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
die("LF would be replaced by CRLF in %s", path);
Itu disebut dengan convert.c#crlf_to_git(), itu sendiri disebut dengan convert.c#convert_to_git(), itu sendiri disebut dengan convert.c#renormalize_buffer().
Dan yang terakhir renormalize_buffer()hanya dipanggil oleh merge-recursive.c#blob_unchanged().
Jadi saya menduga konversi ini terjadi git commithanya jika komit dikatakan merupakan bagian dari proses penggabungan.
Catatan: dengan Git 2.17 (Q2 2018), pembersihan kode menambah beberapa penjelasan.
Lihat commit 8462ff4 (13 Jan 2018) oleh Torsten Bögershausen ( tboegi) .
(Digabung oleh Junio C Hamano - gitster- dalam komit 9bc89b1 , 13 Feb 2018)
convert_to_git (): safe_crlf / checksafe menjadi int_flags
Saat memanggil convert_to_git(), checksafeparameter menentukan apa yang harus terjadi jika konversi EOL ( CRLF --> LF --> CRLF) tidak bolak-balik bersih.
Selain itu, ini juga ditentukan jika ujung baris harus dinormalisasi ulang ( CRLF --> LF) atau dijaga sebagaimana adanya.
checksafe adalah safe_crlfenum dengan nilai-nilai ini:
SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors
SAFE_CRLF_FAIL: die in case of EOL roundtrip errors
SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors
SAFE_CRLF_RENORMALIZE: change CRLF to LF
SAFE_CRLF_KEEP_CRLF: keep all line endings as they are
Perhatikan bahwa regresi yang diperkenalkan pada 8462ff4 (" convert_to_git():
safe_crlf/checksafemenjadi int conv_flags", 2018-01-13, Git 2.17.0) kembali dalam siklus Git 2.17 menyebabkan autocrlfpenulisan ulang menghasilkan pesan peringatan
meskipun telahsafecrlf=false diatur .
Lihat komit 6cb0912 (04 Jun 2018) oleh Anthony Sottile ( asottile) .
(Digabung oleh Junio C Hamano - gitster- dalam komit 8063ff9 , 28 Jun 2018)