Rumah > Soal Jawab > teks badan
Saya memuat turun terus kod dari gudang A tertentu, dan kemudian membina gudang B sendiri Ambil perhatian bahawa ia adalah mudah pada masa itu, saya kini berharap untuk menyegerakkan kod terbaharu pengarang gudang A, dan kemudian saya mendapati bahawa kaedah penyegerakan dalam talian tidak berguna
/q/10...
Kaedah yang saya gunakan ialah memfailkan laporan maut dahulu: enggan menggabungkan sejarah yang tidak berkaitan
Selepas mencari Google, saya menambahkan parameter --allow-unrelated-histories
Kini ia boleh dijalankan, dan hasil penggabungan kod sumber adalah membingungkan Git nampaknya tidak dapat mengenali perbezaan kod sumber dalam kes ini, sebagai contoh, terdapat fail kod yang saya tidak ubah sama sekali. tetapi pengarang sumber mengemas kini sendiri
Milik Saya Versinya ialah
111
222
Versi pengarang ialah
111
222
333
Secara teorinya, cantuman hanya perlu menggabungkan 333 terus ke dalam kod sumber saya Walau bagaimanapun, dalam kes ini, git menganggap kandungan saya dan kandungan pengarang adalah sepenuhnya Dua salinan berbeza, jadi ia menukar kod menjadi
<<<<<<<<<head
111
222
========
111
222
333
>>>>>>>>>>aasdasfsdfsdf
Mengapa ini berlaku? Adakah tiada penyelesaian?
PHPz2017-05-02 09:47:39
Kod sumber yang dimuat turun daripada github bukanlah gudang git secara lalai, jadi anda memulakan kod yang dimuat turun ke dalam gudang git tidak mempunyai sebarang sejarah penyerahan. Jika kedua-dua gudang tidak mempunyai sejarah yang sama , ia tidak boleh digabungkan ke dalam gudang jauh menggunakan git pull
, jadi kaedah yang anda gunakan pada mulanya akan menyebabkan ralat berikut:
enggan menggabungkan sejarah yang tidak berkaitan
Tetapi jika anda menggunakan pilihan --allow-unrelated-histories
untuk memaksa penggabungan, ia menyelesaikan masalah.
Namun, masalah yang anda hadapi kemudiannya adalah perkara biasa Git tidak menganggap bahawa kandungan anda dan kandungan pengarang adalah dua salinan yang sama sekali berbeza, iaitu, terdapat perbezaan di tempat yang sama. Jika anda menghadapi konflik, cuma selesaikan secara manual. Dan mengikut tekaan saya, sebab konflik itu mungkin kerana pemecahan baris Windows dan pemecahan baris Unix tidak konsisten (sudah tentu kita tidak dapat melihatnya dengan mata kasar Ini bergantung pada cara anda mengendalikan pemecahan baris dalam anda). tetapan git. Mungkin aksara baris baharu gudang jauh secara seragam menggunakan aksara baris baharu Unix (LF) atau aksara baris baharu Windows (CLF), dan anda adalah sebaliknya. Mengenai cara mengendalikan pemisah baris dalam tetapan git, anda boleh merujuk kepada dokumentasi bantuan rasmi github Sudah tentu, terdapat juga banyak maklumat di Internet.
Selain itu, seperti yang dikatakan oleh tuan sebelum ini, sebaiknya gunakan perintah git clone
untuk mengklon terus gudang, supaya anda boleh mengekalkan penyerahan sejarah gudang, dan gunakan perintah git pull
untuk mengelakkan pelaporan kesilapan.
天蓬老师2017-05-02 09:47:39
Ini menandakan bahagian anda yang bercanggah dan anda boleh memilih bahagian yang hendak disimpan untuk menyelesaikan konflik.
Selain itu, jika anda hanya menyalin salinan kod dan tidak mahu menyalinnya, anda hendaklah terus git clone
Dengan cara ini, hos jauh anda masih menjadi milik pengarang dan anda boleh menggunakan git pull
untuk memastikan ia dikemas kini pada masa hadapan
黄舟2017-05-02 09:47:39
Ini kerana baris yang sama telah diubah suai dan GIT tidak dapat mengenali dan menggabungkannya. Ini dipanggil 冲突
Anda perlu menyelesaikan konflik secara manual dan kemudian melakukan Bagaimana untuk menyelesaikan konflik, sila cari juga "Penyelesaian konflik GIT"
怪我咯2017-05-02 09:47:39
jawapan ahli sudah betul. .
Anda boleh menggunakan git add -u untuk menambah fail yang bercanggah. Kemudian git commit -m commit dan kemudian git pull
Mengapa situasi yang anda nyatakan berlaku.
Ada kemungkinan kod anda ialah
222
Sebenarnya terdapat pemulangan pengangkutan atau suapan talian atau simbol lain di sini
Versi pengarang ialah
111
222
333
Dalam kes ini, git akan menyedari bahawa ini adalah konflik dan tidak akan bergabung secara automatik. Tidak pasti sepenuhnya. git tidak menggabungkan kod secara automatik.
PHPz2017-05-02 09:47:39
@Fighting_Bird
Selepas ujian, anda betul. Perangkapnya ialah
text=auto
Pilihan ini, jika terdapat pilihan ini dalam tetapan, git akan menukar semua pemisah baris dokumen teks yang dianggapnya kepada LF sebelum menyerahkan, dan kemudian apabila menyemak keluar Kemudian tukarkannya semula, tetapi projek saya sendiri tidak mempunyai tetapan ini, jadi tiada operasi penukaran sedemikian, menyebabkan pemecahan baris dokumen menjadi berbeza dan penggabungan gagal