Apabila pasukan pembangunan perisian moden menjadi lebih besar dan lebih besar, kawalan versi telah menjadi tugas penting. Git ialah sistem kawalan versi popular yang digunakan secara meluas dalam projek sumber terbuka dan komersial. Walau bagaimanapun, kami sering menghadapi masalah: Git mencipta konflik apabila menggabungkan kod. Mengapakah Git menjana konflik? Artikel ini akan mengupas isu ini.
Pengetahuan asas Git
Git ialah sistem kawalan versi teragih. Ini bermakna setiap pembangun mempunyai salinan lengkap asas kod dan boleh melakukan, menolak dan menarik secara setempat. Pada masa yang sama, Git memastikan integriti dan keunikan data dengan menggunakan fungsi cincang SHA-1.
Terdapat tiga konsep teras dalam Git:
Punca konflik
Terdapat dua situasi utama di mana konflik mungkin berlaku semasa operasi Git: melakukan konflik dan menggabungkan konflik.
Apabila berbilang orang mengubah suai fail yang sama pada masa yang sama, jika dua orang mengubah suai baris yang sama, konflik komit akan berlaku. Contohnya, Alice dan Bob mengubah suai kod pada baris yang sama dalam fail yang sama. Orang yang melakukan kod terlebih dahulu akan dapat berjaya memasukkan kod ke repositori, tetapi orang yang melakukan kemudian akan melihat mesej ralat yang menggesa dia mengemas kini repositori untuk melihat perubahan yang telah dilakukan.
Semua orang yang mengemas kini pangkalan kod akan melihat perubahan yang dilakukan oleh orang lain, tetapi juga akan mendapati bahawa komitmen mereka sendiri tidak boleh diproses lagi. Pada ketika ini, mereka perlu menyelesaikan konflik perubahan secara manual. Biasanya, alat gabungan mengendalikan konflik komit dengan baik. Walau bagaimanapun, apabila dua orang mengubah suai kawasan kod yang terlalu serupa, alat cantum mungkin memberi amaran tentang konflik dan memerlukan pengendalian manual.
Konflik gabungan berlaku apabila dua cabang digabungkan menjadi satu. Konflik gabungan berlaku apabila fail diubah suai dalam kedua-dua cawangan, dan pengubahsuaian ini bercanggah dalam sintaks atau mengubah suai kandungan yang bercanggah antara satu sama lain.
Sebagai contoh, Alice mencipta cawangan pembangunan daripada cawangan induk dan mengubah suai baris tertentu dalam fail. Mulai saat ini, cawangan induk menerima beberapa komitmen yang menukar baris kod yang sama yang diubah suai Alice, atau memadam fail sepenuhnya. Konflik berlaku apabila Alice cuba menggabungkan cawangannya kembali ke cawangan induk. Alice perlu menyelesaikan konflik secara manual supaya perubahannya dikekalkan semasa membuat perubahan dalam cawangan induk serasi dengannya.
Konflik penggabungan adalah perkara biasa, terutamanya dalam projek besar di mana berbilang orang bekerjasama. Menyelesaikannya memerlukan banyak komunikasi dan kerjasama pasukan. Untuk meringankan beban ini, pembangun harus menyegerakkan pangkalan kod mereka dengan kerap dan memastikan bahawa mereka sentiasa menggunakan versi terkini Git.
Cara menyelesaikan konflik
Menyelesaikan konflik dalam Git biasanya memerlukan langkah berikut:
Gunakan git tarik Perintah untuk mendapatkan perubahan kod terkini daripada alat kawalan jauh.
Dengan menggunakan arahan gabungan Git, anda boleh mencari konflik dalam pangkalan kod anda. Menyelesaikan konflik selalunya memerlukan pengeditan fail secara manual dan menyelesaikan ralat sintaks dalam fail.
Tukar fail untuk mengekalkan semua perubahan yang diperlukan sambil membetulkan sebarang ralat sintaks.
Komit perubahan fail menggunakan arahan git add dan git commit.
Ringkasan
Git ialah sistem kawalan versi yang popular, tetapi ia juga boleh menyebabkan konflik semasa pembangunan perisian kolaboratif. Dengan memahami punca konflik dan cara menyelesaikannya, anda boleh mencapai kerjasama pasukan dan kawalan versi yang lebih baik serta memastikan penyampaian projek berjaya. Untuk meningkatkan kerjasama pasukan, ahli pasukan harus berkomunikasi antara satu sama lain dengan kerap untuk memastikan bahawa mereka sentiasa bekerja dengan asas kod terkini.
Atas ialah kandungan terperinci Mengapa git berkonflik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!