Saya pernah memikirkan masalah ini sebelum ini semasa saya menggunakan SVN, tetapi saya tidak memahaminya pada masa itu dan saya tidak pernah menghadapi pepijat.
Sekarang saya sedang belajar Git, saya mempunyai soalan yang sama, jadi saya bertanyakannya.
Soalan:
Apabila menggabungkan cawangan, jika tiada konflik, adakah kod yang digabungkan secara automatik oleh Git mempunyai pepijat?
Oleh kerana konflik yang dikesan oleh Git semasa penggabungan adalah semua konflik penyuntingan, seperti sama ada kedua-dua suntingan berada pada baris yang sama, dan sama ada kedua-dua suntingan mempunyai operasi yang bertentangan (satu menambah dan satu memadam kod yang sama), jelas sekali, Git tidak Anda juga tidak boleh mengambil berat tentang logik kod itu sendiri.
Jadi, saya fikir anda harus menyemak ketepatan kod selepas penggabungan, yang bersamaan dengan mengesahkan selepas setiap gabungan sama ada masalah yang diselesaikan oleh kedua-dua cabang berada dalam keadaan tidak dapat diselesaikan selepas penggabungan, dan sama ada pepijat baharu telah dihasilkan Bukankah ini banyak kerja?
Saya tertanya-tanya adakah anda akan menyemak ini dalam penggunaan sebenar?
Jika anda mempunyai Baidu, anda sepatutnya melihat maklumat yang serupa: Walaupun perkembangan anda adalah pada cawangan, untuk memastikan ia tidak menyimpang terlalu jauh dari batang, anda perlu menggabungkannya dari batang ke cawangan dengan kerap.
Jika pasukan mengikut proses, tidak akan ada banyak masalah.
Jika berbilang orang mengedit kod yang sama, Git akan melaporkan konflik gabungan, yang perlu diselesaikan secara manual Git tidak mempunyai cara untuk mengetahui cara mengendalikan kod ini, yang tidak dapat dielakkan. Dalam projek kerjasama berbilang orang yang sebenar, setiap orang biasanya membangun dalam modul dan cuba mengelak daripada menukar fail yang sama mengemas kini modul biasa sebelum menukarnya.
Jika tiada konflik dilaporkan selepas cantuman, ini bermakna kod yang sama tidak banyak diubah dan tidak perlu menyemak ketepatan cantuman. Bagi kod gabungan yang memperkenalkan pepijat logik, ia perlu dikaji semula.
Sudah tentu anda boleh menggunakan tiga kaedah a b c. Tiga orang harus mengubah tiga kaedah tersebut (dengan mengandaikan bahawa tiada seorang pun daripada tiga orang yang mengetahui bahawa orang lain telah mengubahnya, git tidak akan menganggapnya sebagai konflik ; Tetapi adakah anda masih boleh memastikan bahawa fungsi ini masih diingini oleh mereka bertiga?
Tidak, kerana terdapat dua situasi dalam git merge Pertama: dalam fail, sekeping kod yang sama telah diubah suai oleh dua orang pada masa yang sama, dan git merge akan melaporkan konflik. Penggabungan manual diperlukan. Kedua: Jika dua orang menukar segmen kod yang berbeza bagi fail yang sama. git akan bergabung secara automatik. Sama ada terdapat pepijat atau tidak adalah masalah bagi orang yang menulis kod tersebut. Terdapat pepijat, dan secara semula jadi akan ada pepijat selepas penggabungan. Tiada pepijat dan tiada pepijat selepas penggabungan. Jangan salahkan orang lain!
Git ditembak semasa saya berbaring, saya menangis dan berkata: Saya hanya bertanggungjawab untuk penggabungan kod. Saya tidak akan menanggung kesalahan. . . . . .
Tiada yang mutlak jika tiada konflik dan pepijat boleh digabungkan, ia hanya boleh dikatakan bahawa anda telah memenangi hadiah.
Ini tidak dipanggil pepijat, ia dipanggil
冲突
. Penyelesaian konflik:Guna versi orang lain
Guna versi anda sendiri
Gabungan manual.
Cara yang sangat biasa untuk mengelakkan konflik ialah: sebelum pengubahsuaian, pertama
pull
cawangan tempatan untuk mengurangkan kemungkinan konflikNah, git hanyalah alat pengurusan versi Jika anda menggabungkan kod dan pepijat berlaku, ia adalah masalah dengan kod pasukan projek anda sendiri. Masalah anda harus diselesaikan dengan menulis kod ujian.
Boleh jadi, ia setara dengan memenangi loteri