Semasa menyerahkan projek, sekumpulan amaran muncul: LF akan digantikan dengan CRLF dalam..., dan saya tersekat mengemas kini indeks, saya menyemaknya dalam talian dan mendapati ia adalah satu baris masalah pecah. Penyelesaiannya adalah git config --global core.autocrlf false
Ia boleh diselesaikan, tetapi ia tidak berfungsi untuk saya. Saya tidak tahu apa masalahnya. Berikut ialah kandungan dalam konfigurasi
Sebelum saya menjawab soalan anda, saya perlu mengatakan beberapa perkataan lagi. Apabila anda bekerjasama dalam pembangunan kod dengan orang lain melalui GitHub atau pelayan pengehosan jauh lain, adalah penting untuk memastikan bahawa pemisah baris dikendalikan dengan betul. Pertama sekali, anda perlu tahu bahawa sistem pengendalian yang berbeza mempunyai takrifan aksara baris baharu yang berbeza Karakter baris baharu dalam sistem pengendalian seperti Unix atau Unix dipanggil LF, manakala aksara baris baharu dalam sistem Windows dipanggil <.>CRLF Terdapat perbezaan besar antara keduanya:
Nota: Dipetik daripada perbezaan antara carriage return (CR) dan suapan talian (LF), 'r' dan 'n'.kepada
Sudah tentu, terdapat cara yang lebih baik untuk menyelesaikan masalah pemisah baris yang tidak konsisten - gunakantrue
, anda membiarkan git mengendalikannya dengan sendirinya, jadi tiada amaran dilaporkan. Tindakan ini boleh menyebabkan putus talian antara anda dan rakan anda bersatu.false
untuk menyatukan pemisah baris dalam fail. Fail ini agak serupa dengan
Fail ini mesti terletak dalam direktori akar gudang dan boleh diubah suai dan diserahkan seperti fail lain. Begini cara menulis fail ini:.gitattributes
Bukan sahaja nama yang serupa, tetapi sintaks penggunaan dan penulisannya juga serupa..gitignore
, anda akan mendapati lajur kiri fail di atas sangat biasa. Satu-satunya perbezaan ialah fail
.gitignore
mempunyai lajur tambahan di sebelah kanan, seperti.gitattributes
,text
,text eol=crlf
Kami hanya mengatakan bahawa lajur ini digunakan untuk menetapkan format pemisah baris yang digunakan oleh yang sepadan fail di sebelah kiri Lajur kiri dan kanan Asingkan dengan ruang. Mari perkenalkan sintaks lajur kanan secara terperinci:binary
text=auto
Biar git mengendalikan format baris baharu yang digunakan oleh fail padanan di sebelah kiri Ini ialah pilihan lalai.
text eol=crlf
Gunakan format baris baharu CRLF secara seragam untuk fail yang sepadan di sebelah kiri Jika LF muncul dalam mana-mana fail, ia akan ditukar kepada CRLF.
text eol=lf
Gunakan format baris baharu LF secara seragam untuk fail yang sepadan di sebelah kiri Jika CRLF muncul dalam mana-mana fail, ia akan ditukar kepada LF.
binary
memberitahu git bahawa ini bukan fail teks dan baris baharu di dalamnya tidak boleh ditukar. Selain itu,
binary
dan simbol-text -diff
adalah setara.Sintaks di atas sepatutnya mencukupi Jika anda berminat, anda boleh menyemak sendiri maklumat yang berkaitan, seperti maklumat rasmi: https://git-scm.com/book/en/v...
Secara umumnya, kaedah kedua adalah penyelesaian terbaik, walaupun ia lebih menyusahkan daripada kaedah pertama.
P.S: Disusun menjadi blog: Git menangani masalah putus talian
Anda melakukannya sebaliknya, ia harus ditetapkan kepada benar.