cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimanakah fail yang sama di bawah cawangan berbeza dalam git boleh dianggap sebagai konflik?

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?

我想大声告诉你我想大声告诉你2790 hari yang lalu745

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑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

    dengan kandungan "1234"

    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

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-02 09:49:39

    Sebab ada penggabungan automatik. Adakah anda melihat konflik semasa menggabungkan cawangan secara manual?

    balas
    0
  • PHP中文网

    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.

    balas
    0
  • Batalbalas