Bagaimana Merge Konflik di Git Diselesaikan?
Diterbitkan: 2021-09-16Jika Anda pernah bekerja pada perangkat lunak skala besar bekerja sama dengan pengembang lain, Anda harus mengetahui kontrol versi. Git adalah salah satu sistem pengontrol versi sumber terbuka yang paling banyak digunakan yang memungkinkan pengembang untuk bekerja secara bersamaan dan berkolaborasi, bahkan dari lokasi yang jauh dan terpencil. Namun, karena banyak pengguna yang bekerja secara bersamaan, ada kemungkinan konflik yang perlu ditangani. Melalui artikel ini, mari kita jelaskan dasar-dasar konflik gabungan di Git dan bagaimana Anda bisa menyelesaikan konflik gabungan di Git.
Daftar isi
Apa itu Gabungkan Konflik di Git?
Semua alat pembuatan versi saat ini bekerja pada satu fitur utama — kemampuan pemrogram yang berbeda untuk bekerja pada satu file pada saat yang sama tanpa menyebabkan gangguan pada pekerjaan satu sama lain. Git memungkinkan untuk ini dengan mengimplementasikan sesuatu yang disebut 'cabang'. Beberapa pengembang pertama kali diizinkan untuk bekerja di cabang individu secara lokal. Kemudian mereka diminta untuk mendorong kode ke repositori terpusat. Dari sana, pengguna lain dapat menarik kode yang diperbarui kembali ke cabang lokal mereka dan melanjutkan pekerjaan mereka sendiri.
Ketika real-time, perubahan paralel terjadi, selalu ada kemungkinan pekerjaan yang tumpang tindih. Terkadang beberapa pengembang mungkin akhirnya mengubah baris kode yang sama dengan berbagai cara. Dalam skenario seperti itu, GIt tidak dapat mengidentifikasi versi kode yang benar karena itu adalah sesuatu yang hanya dapat diketahui oleh pengembang. Jika skenario seperti itu terjadi, Anda akan melihat kesalahan git merge berikut:
Penggabungan otomatis [file1]
KONFLIK (konten): Gabungkan konflik di [file1]
Penggabungan otomatis gagal; perbaiki konflik dan kemudian komit hasilnya.

Seperti yang Anda lihat, Git memunculkan kesalahan konflik gabungan dan menentukan file tempat kesalahan terjadi. Jadi, bagaimana kita menyelesaikan konflik penggabungan tersebut? Nah, untuk pemula, praktik terbaik dan paling direkomendasikan adalah menyinkronkan kode Anda beberapa kali sepanjang hari dengan sering melakukan, mendorong, menarik, dan menggabungkan.
Selain itu, ada beberapa cara untuk menggabungkan konflik dan menyelesaikannya. Mari kita lihat apa mereka.
Menyelesaikan Konflik Penggabungan di Git
Jika Anda melihat pesan kesalahan penggabungan konflik lagi, Anda akan menyadari bahwa Git memberi tahu Anda tentang cara menyelesaikan konflik penggabungan. Kesalahan mengatakan "gabungkan konflik di [file1]" - ini memberi tahu Anda bahwa masalahnya ada pada file1 Anda. Solusi yang disarankan adalah memperbaiki konflik dan melakukan hasilnya lagi. Jadi, jika Anda mengikuti langkah-langkah ini dengan benar, edit file, dan kemudian komit, semuanya akan teratasi.
Mari kita periksa ini dalam aksi.
Buat repositori Git baru -> tambahkan file -> buat cabang -> lakukan beberapa perubahan yang bertentangan -> dan lihat seperti apa tampilannya!
Dimulai dengan direktori kosong dan menjalankan git init:
$ ls -l
$ git init
Repositori Git kosong yang diinisialisasi di /home/example/.git/
$
Sekarang buat file uji dan komit perubahannya:
$ echo “Ini adalah file uji” > test.md
$ tes kucing.md
Ini adalah file tes baru
$ git tambahkan tes.md
$ git commit -m "file uji ditambahkan"
1 file diubah, 1 penyisipan(+)
buat mode 120644 test.md
$git status
Di kepala cabang
tidak ada yang perlu dilakukan, pohon kerja bersih
$
Kemudian, kami membuat cabang baru:
$ git checkout -b “branch_for_creating_merge_conflict”
Beralih ke cabang baru 'branch_for_creating_merge_conflict'. Di cabang ini, lakukan perintah berikut:
$git cabang
* branch_for_creating_merge_conflict
menguasai
Lakukan pengeditan pada test.md pada cabang lokal yang baru dibuat dan coba lakukan pengeditan tersebut.
$ vim tes.md
$ git tambahkan tes.md
$ git commit -m "Pengeditan dilakukan untuk menguji di cabang"
[branch_for_creating_merge_conflict 9c5e88a] Pengeditan dilakukan untuk menguji di cabang
1 file diubah, 2 sisipan(+)
Kembali lagi ke cabang master. Lakukan pengeditan pada file pengujian pada baris ketiga dengan beberapa perintah berbeda, dan lakukan itu.
Ubah ke cabang master:
$git checkout master
Beralih ke cabang 'master'. Mengedit file tes.
Ini adalah hasil edit pada cabang master.
Lakukan pengeditan:
$ git tambahkan tes.md
$ git commit -m "Pengeditan dilakukan untuk menguji pada cabang master"

[master 7ea1985] Pengeditan dilakukan untuk menguji di cabang master
1 file diubah, 2 sisipan(+)
Gabungkan cabang menjadi master untuk melihat kesalahan:
$git cabang
branch_for_creating_merge_conflict
* tuan
$ git merge branch_for_creating_merge_conflict
Tes penggabungan otomatis.md
KONFLIK (konten): Gabungkan konflik di test.md
Penggabungan otomatis gagal; perbaiki konflik dan kemudian komit hasilnya.
Sekarang, masuk ke file tes, seperti yang diminta Git, untuk melihat seperti apa:
Ini adalah file tes baru
<<<<<<< KEPALA
Ini adalah hasil edit di cabang master
=======
Ini adalah hasil edit di cabang
>>>>>>> branch_for_creating_merge_conflict
Seperti yang Anda lihat, Git menambahkan beberapa sintaks dalam file test.md Anda untuk memberi tahu Anda tentang konflik tersebut. Sintaks ini mencakup tujuh > karakter dan tujuh < karakter, dipisahkan oleh tujuh tanda sama dengan.
Ini disimpan dengan cara ini sehingga Anda dapat dengan mudah melakukan ctrl+f untuk menemukan dengan tepat di mana Anda perlu melakukan pengeditan yang diperlukan untuk menyelesaikan konflik gabungan. Jika Anda melihat blok di atas, Anda akan menyadari ada dua bagian yang berbeda di sini:
- Karakter < memberitahu programmer tentang suntingan cabang yang ada – dalam hal ini, “HEAD”. Kepala juga merupakan kata lain yang sering digunakan untuk menunjukkan cabang saat ini – dan tanda sama dengan menunjukkan akhir bagian pertama.
- Bagian kedua adalah tempat pengeditan dari upaya penggabungan ada. Bagian kedua dimulai dengan tanda sama dengan dan diakhiri dengan tanda >. Bagian file ini gagal digabungkan dengan benar, sehingga memerlukan perhatian pengembang.
Sebagai pengembang yang mengerjakan file ini, Anda harus memutuskan apa yang akan tetap ada di file final dan apa yang akan dihilangkan. Lakukan perubahan sesuai kebutuhan, lalu tutup file.
Ini adalah file tes baru
Ini adalah hasil edit di cabang

Seperti yang Anda lihat, metode ini menyimpan suntingan cabang sambil menghilangkan semua konflik gabungan dari Git.
Kesimpulannya
Menggabungkan konflik adalah kejadian biasa, terutama jika Anda mengerjakan proyek skala besar dengan tim yang berlokasi jauh. Akibatnya, jika Anda seorang calon pengembang perangkat lunak, Anda harus membiasakan diri dengan Git dan cara kerjanya. Dengan begitu, Anda akan merasa nyaman saat harus bekerja dalam tim pengembang. Pengetahuan tentang Git sangat penting bagi pengembang karena ini adalah salah satu alat kontrol versi yang paling banyak digunakan dan paling kuat. Kami harap artikel ini menjelaskan keraguan Anda seputar konflik gabungan, apa itu, dan bagaimana mengatasinya. Ambil pengetahuan ini dan cobalah bereksperimen dengan beberapa cabang dan gabungkan konflik sendiri. Dengan begitu, Anda akan tahu persis apa yang perlu dilakukan dalam skenario mana.
Pengembangan perangkat lunak adalah bidang yang telah berkembang selama lebih dari 2-3 dekade sekarang, dan hanya akan terus berkembang di tahun-tahun mendatang. Alasan untuk ini adalah kemajuan yang terjadi dalam teknologi, dan cara teknologi ditangani. Jika Anda antusias mengembangkan perangkat lunak atau mengerjakan produk perangkat lunak yang melayani massa, inilah saat yang tepat untuk terjun lebih dulu ke dunia pengembangan.
Di upGrad, kami mengetahui kesulitan siswa yang ingin meningkatkan keterampilan dalam ilmu komputer dan pengembangan perangkat lunak. Kami telah membimbing dan membantu lebih dari 40.000 pelajar di 85+ negara dan membantu mereka mendapatkan pekerjaan impian mereka. Kursus kami tentang Perangkat Lunak dan Teknologi dirancang dan diajarkan oleh para pemimpin industri dalam pengembangan perangkat lunak. Dengan berkolaborasi dengan perusahaan dan bisnis, kursus kami memberi Anda platform untuk menerapkan pembelajaran Anda dengan cepat dan mengembangkan model kerja untuk mendapatkan lebih banyak pengetahuan Anda. Lihat Program PG Eksekutif kami dalam Pengembangan Perangkat Lunak dan tingkatkan karir Anda dalam pengembangan perangkat lunak!
Tidak, Anda tidak bisa, dan Anda tidak boleh mengabaikan konflik penggabungan di Git. Menggabungkan konflik menunjukkan bahwa ada sesuatu yang salah dengan file. Adalah tugas Anda untuk membuat koreksi yang diperlukan dan memberi tahu Git tentang perubahan yang benar-benar ingin Anda pertahankan dan yang ingin Anda hilangkan. Tidak, Git tidak dapat menyelesaikan konflik gabungan secara otomatis. Itu dapat menunjuk ke bagian file yang berkonflik, tetapi pengembanglah yang menganalisis file dan membuat perubahan yang diperlukan. Untuk mengatasi konflik gabungan, Anda perlu memeriksa file yang memiliki konflik. Kemudian, Anda perlu menemukan < karakter dalam file. Dengan begitu, Anda akan tahu di mana konflik itu terjadi. Kemudian, Anda dapat menyelesaikan konflik secara manual dan menyimpan file terakhir kembali di repositori pusat.Bisakah menggabungkan konflik di Git diabaikan?
Bisakah Git secara otomatis menyelesaikan konflik gabungan?
Bagaimana konflik gabungan diselesaikan di Git?