Merge conflict adalah situasi di mana Git tidak bisa secara otomatis menggabungkan dua versi kode yang berbeda — dan kamu perlu memutuskan secara manual mana yang benar.
Konflik terjadi ketika dua orang mengubah baris yang sama pada file yang sama, atau seseorang menghapus file yang diubah orang lain:
Dev A mengubah baris 10 di index.html → commit A
Dev B mengubah baris 10 di index.html → commit B
Saat merge commit A dan B → KONFLIK di baris 10
git merge feature/navbar
# Auto-merging index.html
# CONFLICT (content): Merge conflict in index.html
# Automatic merge failed; fix conflicts and then commit the result.
git status
# both modified: index.html ← file yang konflik
Git menandai area konflik dengan marker khusus:
<!DOCTYPE html>
<html>
<head>
<<<<<<< HEAD
<title>Toko Online</title>
=======
<title>Toko Online - Belanja Mudah</title>
>>>>>>> feature/navbar
</head>
<body>
<<<<<<< HEAD → awal area konflik, versi branch aktif (main)
======= → pemisah antara dua versi
>>>>>>> feature/navbar → akhir area konflik, versi yang di-merge
Langkah 1: Lihat file yang konflik
git status
# Lihat semua file yang konflik
git diff
# Lihat detail semua konflik
Langkah 2: Edit file dan pilih versi yang benar
Buka file dengan text editor. Untuk setiap konflik, pilih:
Hapus semua marker konflik:
<!-- Sebelum: ada marker konflik -->
<<<<<<< HEAD
<title>Toko Online</title>
=======
<title>Toko Online - Belanja Mudah</title>
>>>>>>> feature/navbar
<!-- Setelah: pilih atau gabungkan -->
<title>Toko Online - Belanja Mudah</title>
Langkah 3: Tandai konflik sudah selesai
# Setelah edit manual, add file yang sudah diresolvei
git add index.html
# Jika ada banyak file konflik, selesaikan satu per satu
git add file-konflik-1.html
git add file-konflik-2.css
Langkah 4: Selesaikan merge
git commit
# Git akan membuka editor dengan pesan default:
# "Merge branch 'feature/navbar'"
# Simpan dan tutup editor
Jika merasa tidak siap menyelesaikan konflik sekarang:
git merge --abort
# Repositori kembali ke kondisi sebelum merge dimulai
Mengedit marker konflik manual di text editor bisa membingungkan. Tools visual jauh lebih membantu:
# Buka merge tool bawaan Git
git mergetool
# VS Code memiliki UI conflict resolver yang bagus
# Buka file konflik di VS Code — akan muncul opsi:
# [Accept Current Change] [Accept Incoming Change]
# [Accept Both Changes] [Compare Changes]
Di VS Code, setiap konflik menampilkan:
Konflik tidak bisa sepenuhnya dihindari, tapi bisa diminimalkan:
# 1. Pull/fetch sering — selalu update sebelum push
git pull origin main
# 2. Branch pendek — jangan biarkan branch terlalu lama tidak di-merge
# Semakin lama branch terpisah, semakin besar potensi konflik
# 3. Komunikasi tim — beri tahu jika mau edit file tertentu
# 4. Rebase sebelum merge
git switch feature/navbar
git rebase main # taruh commit di atas main terbaru
# Selesaikan konflik selama rebase (satu per satu per commit)
git switch main
git merge feature/navbar # sudah bersih, fast-forward
💡 Tips: Konflik adalah hal normal dalam kolaborasi tim — bukan tanda ada yang salah. Kunci menyelesaikannya dengan baik adalah komunikasi: hubungi developer yang kode-nya berkonflik denganmu, pahami niat di balik perubahan mereka, lalu putuskan bersama solusi yang terbaik. Jangan asal pilih salah satu tanpa memahami kedua versi. 🤝
Kursus
Git Dasar
Kategori
Kolaborasi
Durasi Pelajaran
20 menit