Lewati ke konten utama

Tutorial Git Merge: Panduan Komprehensif dengan Contoh

Pelajari cara menggabungkan branch secara efisien di Git dengan tutorial langkah demi langkah ini. Jelajahi berbagai strategi merge, selesaikan konflik, dan terapkan praktik terbaik untuk menjaga riwayat Git tetap rapi.
Diperbarui 28 Sep 2026  · 15 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Jika Anda pernah mengerjakan proyek dengan banyak pengembang (atau bahkan hanya mengelola banyak fitur sendiri), Anda tahu bahwa branching sangat penting untuk menjaga semuanya tetap teratur. Namun pada titik tertentu, semua branch itu harus digabungkan kembali—dan di situlah git merge berperan.

Dalam tutorial ini, saya akan membahas berbagai jenis merge di Git, cara kerjanya, dan cara menyelesaikan konflik merge ketika semuanya tidak berjalan sesuai rencana. Terakhir, saya akan berbagi beberapa praktik terbaik agar Anda dapat menggunakan git merge secara efektif dan menghindari jebakan umum.

Apa itu git merge?

Dalam kerja tim, pengembang sering mengerjakan fitur, perbaikan bug, dan peningkatan pada branch terpisah. Setelah pekerjaan mereka selesai, mereka menggunakan git merge untuk mengintegrasikan perubahan tersebut.

Merge menggabungkan perubahan dari satu branch ke branch lain sambil mempertahankan riwayat versi secara utuh. Ini menyatukan riwayat commit dari kedua branch.

Mari kita pahami alurnya melalui sebuah contoh.

Sebuah commit dasar yang sama bercabang menjadi dua branch, menghasilkan ujung main dan feature yang terpisah sebelum digabung. Gambar oleh Penulis.

Pada gambar di atas, branch feature dan main masing-masing membuat commit baru sejak branch feature dibuat.

Sebuah branch feature dan branch main bercabang dari basis yang sama dan kemudian digabung menjadi satu merge commit. Gambar oleh Penulis.

Git merge mengambil semua commit baru dari kedua branch, dimulai dari basis bersama mereka, lalu menggabungkannya menjadi satu merge commit. Setelah itu, Git memperbarui penunjuk head agar mengarah ke merge commit baru ini.

Penggunaan Perintah git merge Dasar

Merge bukan sekadar menjalankan git merge lalu selesai—ada beberapa langkah penting agar semuanya tertata lebih dulu. Di bagian ini, kita akan melalui seluruh proses, dari menyiapkan branch hingga menyelesaikan merge dengan sukses.

Langkah 1: Persiapan sebelum merge

Hanya perubahan yang sudah di-commit di kedua branch yang bisa digabung. Jadi, gunakan perintah git status untuk memeriksa perubahan yang belum di-commit dan commit dengan perintah git commit sebelum melakukan merge. 

Langkah 2: Checkout ke branch target

Sebelum menjalankan git merge, Anda sebaiknya beralih ke branch target, biasanya branch main. Beralih ke branch main menggunakan git checkout main atau git switch main. 

Langkah 3: Melakukan merge sebuah branch

Pastikan branch main selaras dengan repositori remote. Untuk itu, jalankan git pull origin main.

Sekarang, Anda akhirnya siap untuk menggabungkan branch feature ke branch main! Anda dapat menggunakan perintah seperti berikut:

git merge feature-branch

Langkah 4: Menyelesaikan konflik merge (jika ada)

Git akan mencoba secara otomatis menyelesaikan konflik yang mungkin terjadi selama merge. Namun, intervensi manual bisa diperlukan ketika Git tidak dapat menyelesaikan konflik sendiri. 

Misalnya, jika baris yang sama dalam file yang sama diubah pada branch berbeda, maka konflik merge bisa terjadi. 

Saat Git mendeteksi konflik, Git akan menjeda proses merge dan meminta Anda menyelesaikannya. Dalam hal ini:

  • Jalankan git status untuk melihat file mana yang mengalami konflik. 
  • Buka file-file tersebut.
  • Tinjau baris kode yang konflik, dan perbarui agar konsisten di kedua branch.

Langkah 5: Melakukan commit hasil merge

Setelah menyelesaikan konflik, gunakan perintah git add .  untuk menandai file yang sudah diperbaiki. Lalu, selesaikan merge dengan melakukan commit disertai pesan: 

git merge -m “resolved conflicts”

Di bagian selanjutnya, kita akan melihat cara menyelesaikan konflik merge lebih mendalam.  

Bagi pemula, berikut lembar contekan Git lengkap yang mencakup semua perintah penting untuk membuat, memperbarui, menghapus, dan mengelola branch. 

Jika Anda sudah memiliki sedikit pengalaman dengan Git dan perlu penyegar mengenai perintah-perintah penting, lihat tutorial ini untuk perintah Git yang paling sering digunakan beserta contohnya.

Jenis-jenis Merge di Git

Memahami tipe merge Git akan membantu Anda memilih strategi yang tepat untuk skenario Anda. Berikut tiga pendekatan umum untuk melakukan merge. 

Fast-forward merge

Ketika branch dasar tidak memiliki commit baru sejak branch feature dibuat, Git menggunakan pendekatan fast-forward. 

Jika branch feature Anda diperbarui sementara branch main tidak berubah, merge akan memindahkan penunjuk head milik main ke branch feature. 

Tidak ada merge commit tambahan yang dibuat, sehingga riwayat commit tetap bersih dan linear.

Three-way merge

Jika baik branch dasar maupun branch feature memiliki commit baru, Git akan mencari leluhur bersama dan membuat merge commit baru. Commit ini menggabungkan riwayat kedua branch, sekaligus mempertahankan riwayat masing-masing branch feature dan main.

Pada contoh di bawah, “E” dan “G” adalah commit baru di branch main setelah branch feature dibuat. 

      C---D---F (feature-branch)
     /         
A---B---E---G (main) 

Sebuah merge commit baru, “M”, dibuat, mempertahankan riwayat baik branch main maupun feature. 

       C---D---F
      /         \
 A---B---E---G---M (main)

Squash merge

Squash merge menggabungkan semua perubahan dari sebuah branch feature menjadi satu commit dan menggabungkannya ke branch target. Metode ini tidak mempertahankan riwayat commit individual dari branch feature. 

git merge --squash feature_branch_name

Squash merge sangat membantu untuk menghindari kekacauan akibat banyak commit kecil sekaligus tetap mempertahankan keadaan akhir fitur di branch target.

Menggabungkan Banyak Branch

Saat mengerjakan proyek besar, Anda mungkin perlu menggabungkan banyak branch—baik satu per satu maupun sekaligus. Pendekatan yang Anda pilih bergantung pada alur kerja dan kompleksitas perubahan. Di bagian ini, saya akan membahas kedua metode dan kapan menggunakannya secara efektif.

Menggabungkan lebih dari satu branch secara berurutan

Untuk menggabungkan branch satu per satu, gunakan perintah merge secara berurutan untuk setiap branch feature. 

Langkah 1: Beralih ke branch target tempat Anda ingin menggabungkan perubahan.

git checkout target_branch_name

Langkah 2: Gabungkan branch feature pertama, seperti di bawah ini.

git merge feature_branch_1

Langkah 3: Gabungkan branch feature kedua seperti ditunjukkan.

git merge feature_branch_2

Ulangi proses ini sampai semua branch lainnya tergabung.

Menggabungkan lebih dari satu branch secara paralel

Ikuti langkah-langkah berikut untuk menggabungkan banyak branch feature sekaligus.

Langkah 1: Beralih ke branch target tempat Anda ingin menggabungkan perubahan.

git checkout target_branch_name

Langkah 2: Jalankan perintah berikut dengan beberapa branch feature 

git merge feature_branch_1 feature_branch_2 feature_branch_3

Saat Git menggabungkan beberapa branch secara paralel, konflik bisa terjadi. Jika itu terjadi, Git akan meminta Anda menyelesaikannya secara manual.

Menangani konflik pada banyak merge

Menggabungkan banyak branch tidak selalu mudah—terutama ketika satu branch bergantung pada yang lain. 

Misalnya, menggabungkan feature_x ke main sebelum feature_y dapat menimbulkan konflik. Demikian pula, jika branch berbeda memodifikasi file yang sama, merge paralel dapat menyebabkan konflik yang perlu ditangani secara cermat.

Ikuti langkah-langkah ini untuk menyelesaikan konflik merge:

  • Langkah 1: Jalankan git status untuk melihat file apa yang menyebabkan konflik.
  • Langkah 2: Buka file yang konflik dan perbaiki.
  • Langkah 3: Tambahkan perubahan ke staging dan lakukan commit.

Memahami riwayat merge commit 

Untuk konflik yang kompleks, Anda mungkin memerlukan informasi lebih dari yang diberikan git status. Dalam kasus seperti itu, Anda dapat menggunakan perintah seperti git log atau git show untuk menggali lebih dalam riwayat.

  • git log: menampilkan seluruh riwayat commit, termasuk merge commit. Ini membantu mengidentifikasi merge tertentu tempat masalah terjadi. 
  • git show: Jika Anda menemukan merge commit yang mencurigakan dari perintah di atas, gunakan git show untuk memeriksanya. Perintah ini memberikan tampilan detail commit, menampilkan apa yang berubah selama merge. Perintah ini juga menampilkan pengenal unik untuk branch induk sebelum merge tertentu terjadi.
  • git diff: Anda dapat mengambil pengenal unik dari branch induk dan branch hasil merge dari perintah sebelumnya dan menggunakan git diff untuk membandingkan perubahan antara dua keadaan tersebut.

Praktik Terbaik Git Merging

Proses merge kadang bisa berantakan, terutama saat banyak pengembang bekerja pada basis kode yang sama. 

Walau kita telah membahas cara menyelesaikan konflik saat muncul, pendekatan terbaik adalah mencegahnya sebelum terjadi. Di bagian ini, kita akan membahas kiat praktis untuk menjaga proses merge tetap mulus dan riwayat Git tetap rapi.

Jaga agar branch kecil dan fokus

Branch yang besar meningkatkan risiko tumpang tindih pengeditan, yang dapat memicu lebih banyak konflik. Untuk meminimalkannya, kerjakan satu fitur per branch dan jaga agar branch tetap kecil dan fokus.

Sering melakukan pull dan merge

Tarik perubahan terbaru dari repositori remote untuk memperbarui branch dasar sebelum merge. Secara berkala lakukan pull dari branch main ke branch feature agar tetap sinkron. Ini mencegah konflik besar dan kompleks di kemudian hari.

Gunakan alat merge bawaan Git

Alih-alih mengedit file secara manual, Anda dapat menggunakan alat bawaan Git untuk menyelesaikan konflik melalui UI visual. Saat Anda menjalankan git mergetool, tiga pilihan akan muncul:

  • LOCAL - Versi branch main. Memilih ini akan mempertahankan konten file yang konflik dari branch main dan mengabaikan perubahan dari branch feature. 
  • REMOTE - Versi branch feature. Memilih ini akan menerapkan konten branch feature pada file yang konflik.
  • BASE - Menggabungkan perubahan dari file yang konflik pada kedua branch dan menyatukannya. 

Merge sesuai urutan

Saat menggabungkan banyak branch, urutan itu penting—terutama jika satu fitur bergantung pada yang lain. Jika feature_x bergantung pada feature_y, menggabungkan feature_x terlebih dahulu dapat menimbulkan konflik. Untuk menghindarinya, selalu gabungkan branch sesuai urutan dependensinya agar proses tetap lancar dan meminimalkan konflik.

Squash merging 

Seperti disebutkan sebelumnya, squash merging mengkonsolidasikan semua commit dari sebuah branch feature menjadi satu commit, menjaga riwayat commit tetap bersih dan mengurangi potensi konflik merge.

Pendekatan alternatif adalah rebase, yang menerapkan perubahan branch feature langsung di atas branch dasar. Ini menciptakan riwayat linear dan menghindari merge commit yang tidak perlu. Namun, kedua metode tersebut menulis ulang riwayat dan tidak mempertahankan commit individual dari branch feature.

Kesimpulan

Dalam tutorial Git merge ini, kita telah membahas semuanya mulai dari dasar-dasar merging hingga praktik terbaik untuk menghindari konflik. Memahami cara menggunakan git merge secara efektif membantu tim berkolaborasi tanpa hambatan, menjaga alur kerja tetap mulus dan riwayat kode tetap rapi.

Jika Anda ingin memperdalam keterampilan Git, lihat kursus Git tingkat menengah ini untuk menguasai alur kerja dan teknik yang lebih lanjut!

FAQs

Apa perbedaan antara git merge dan git rebase?

Meskipun keduanya mengintegrasikan perubahan dari satu branch ke branch lain, git merge membuat merge commit baru, sehingga mempertahankan riwayat kedua branch. Sebaliknya, git rebase menerapkan commit dari branch feature langsung ke branch target, menghasilkan riwayat commit yang linear namun dengan menulis ulang riwayat.

Bisakah saya membatalkan merge di Git?

Ya, jika Anda belum melakukan push hasil merge, Anda dapat menggunakan:

git reset --hard HEAD~1

Ini mengatur ulang branch Anda ke keadaan sebelum merge. Jika merge sudah di-push, Anda perlu menggunakan git revert untuk membatalkan perubahan dengan aman sambil menjaga riwayat tetap utuh.

Bagaimana cara menggabungkan branch remote ke branch lokal saya?

Untuk menggabungkan branch remote ke branch lokal Anda, ikuti langkah-langkah berikut:

git fetch origin  

git checkout my-branch  

git merge origin/feature-branch 

Ini memastikan Anda menggabungkan pembaruan terbaru dari repositori remote.

Bagaimana saya dapat mencegah konflik merge yang tidak perlu?

Untuk meminimalkan konflik:

  • Secara rutin tarik perubahan terbaru sebelum memulai pekerjaan baru (git pull).
  • Lakukan merge sesuai urutan dependensi jika beberapa branch saling bergantung.
  • Gunakan feature flag untuk mengintegrasikan kode secara bertahap alih-alih menggunakan branch berumur panjang.

Apa yang terjadi saat saya melakukan merge branch yang sudah pernah digabung?

Jika sebuah branch sudah pernah digabung, menjalankan git merge feature-branch lagi tidak akan mengubah apa pun. Git akan mengenali bahwa kedua branch berbagi riwayat yang sama dan hanya menegaskan bahwa semuanya sudah terbaru.

Bisakah saya melakukan merge beberapa branch sekaligus?

Tidak, Git tidak mendukung menggabungkan banyak branch dalam satu perintah. Anda perlu menggabungkannya secara berurutan:

git merge feature-branch-1  

git merge feature-branch-2  

Jika perlu, Anda dapat membuat integration branch tempat Anda menggabungkan beberapa branch, lalu menggabungkannya ke main.

Haruskah saya menggunakan git merge --no-ff atau git merge --ff?

  • --no-ff (tanpa fast-forward merge) membuat merge commit baru, sehingga lebih mudah melacak riwayat branch.
  • --ff (fast-forward merge) menerapkan perubahan langsung jika memungkinkan, menghindari commit tambahan.

Untuk proyek yang menekankan pelacakan branch feature, --no-ff direkomendasikan.


Srujana Maddula's photo
Author
Srujana Maddula
LinkedIn

Srujana adalah penulis lepas di bidang teknologi dengan gelar sarjana Ilmu Komputer. Menulis tentang berbagai topik, termasuk data science, komputasi awan, pengembangan, pemrograman, keamanan, dan banyak lainnya adalah hal yang alami baginya. Ia menyukai sastra klasik dan menjelajahi destinasi baru.

Topik
Git

Pelajari lebih lanjut tentang Git dengan kursus-kursus ini!

Kursus

Git Tingkat Menengah

2 jam
44.5K
Temukan cabang dan repositori jarak jauh untuk pengendalian versi dalam proyek perangkat lunak dan data kolaboratif menggunakan Git!
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

Lihat SelengkapnyaLihat Selengkapnya