Rumah > Soal Jawab > teks badan
Sebagai contoh, terdapat dua cawangan, master
dan develop
. Untuk 1.txt
fail,
master分支
:
222
3333 66
555
develop分支
:
222
4444 77
888
Mula-mula terdapat induk, kemudian saya mencipta cawangan membangunkan, kemudian mengubah suai 1.txt di bawah cawangan membangunkan, kemudian menambah dan komit, kemudian bertukar kembali ke cawangan induk, dan kemudian digabungkan, hanya 66 dan 77 konflik dilaporkan, dan lain-lain Tiada konflik dilaporkan antara kedua-dua tempat
Mengapa akan berlaku konflik jika hanya ada 66 dan 77? Dan 4444 dan 3333, dan 555 dan 888 tidak bercanggah? Tidak faham
Tengok gambar di atas, master branch ialah 555555, saya tukar kepada dev pada 5445, kemudian tambah commit, kemudian tukar semula ke master branch, merge, tiada konflik, dan akhirnya merge ke 5445. Adakah ini apa yang awak cakap?
巴扎黑2017-05-02 09:49:39
Sama ada Konflik berlaku bergantung pada susunan komit pengubahsuaian
Rakan saya di tingkat atas menyebut penggabungan automatik, yang bermaksud tiada konflik akan berlaku. Contohnya:
Pada tuan, anda mempunyai komitmen dengan kandungan "1234"
Pada masa ini, anda mencipta cawangan baharu berdasarkan induk , dipanggil develop
, kemudian cawangan develop
ini juga mempunyai komit
Kemudian anda menyerahkan komitmen baharu dan menukar "1234" kepada "1234 666". Kemudian jika anda merge
pada masa ini, tidak akan ada konflik
Satu lagi contoh situasi konflik:
master
Terdapat komit di dalam, kandungannya ialah "1234"
Anda mencipta cawangan baharu selepas komit ini, dipanggil develop
. Kemudian pada masa ini, cawangan develop
anda mempunyai komitmen pertama dengan kandungan "1234"
Kemudian anda menyerahkan komitmen dalam develop
dengan kandungan "1234 777"
Sepanjang tempoh ini, master
anda telah dikemas kini rakan sekerja atau rakan anda, atau diri anda sendiri, Menyerahkan komitmen baharu pada master
dan mengemas kininya kepada "1234 666"
Jika anda bergabung semula pada masa ini, akan ada konflik, kerana git mendapati bahawa kedua-dua cawangan mempunyai nenek moyang yang sama (nenek moyang), iaitu "1234", tetapi git tidak tahu apa yang anda mahu gabungkan sekarang . "666" atau "777"
Berbalik kepada soalan anda, saya cadangkan anda melihat dahulu sejarah komit dua cawangan anda dan bandingkannya. Lihat jika anda boleh menemui situasi yang serupa dengan ini, iaitu, dua cabang mempunyai komit yang sama sebagai titik permulaan (nenek moyang), tetapi komit berikutnya diverge (pert)
Jika anda masih tidak dapat menjelaskan masalah anda, sila hantarkan saya alamat github anda jika ia mudah
给我你的怀抱2017-05-02 09:49:39
Sebab ada penggabungan automatik. Adakah anda melihat konflik semasa menggabungkan cawangan secara manual?
PHP中文网2017-05-02 09:49:39
Saya mencubanya dan mendapati ia tidak berkesan.
Ini semua tekaan saya.
Pada mulanya tuan kelihatan seperti ini:
222
3333 22
555
Kemudian anda membuat pembangunan dan mengubah suainya seperti ini:
222
4444 77
888
Pada masa ini, develop boleh terus digabungkan dengan master tanpa konflik, kerana develop adalah pengubahsuaian kepada master demi master.
Tetapi anda tidak bergabung membangun, tetapi menukar induk:
222
3333 66
555
Pada masa ini, terdapat konflik antara 66 dan 77. Kerana git tahu bahawa 4444 dalam pembangunan telah diubah daripada 3333, dan 888 ditukar daripada 555, kedudukan induk semasa masih mempunyai 3333 dan 555. Tetapi 77 pada asalnya ditukar daripada 22, tetapi kini 22 tuan telah menjadi 66. Terdapat dua pengubahsuaian yang bercanggah, dan git tidak boleh menggabungkan 77 kepada 66.
Dalam erti kata lain, master dan develop pada asalnya berada pada baris yang sama, tetapi jika anda menukar master, master baru tidak berada pada baris yang sama seperti develop asal.