Menyelesaikan Konflik Merge

Membaca penanda konflik, memutuskan isi akhir, dan menuntaskan merge dengan tenang.

Part 14 dari 22 ± 40 menit Gratis

Konflik bukan bencana

Konflik terjadi saat dua branch mengubah baris yang sama pada berkas yang sama (atau satu menghapus berkas yang diedit yang lain). Git tidak bisa memutuskan versi mana yang benar, jadi ia berhenti dan meminta kamu memilih. Ini hal normal dalam kerja tim; kuncinya tenang dan sistematis.

Saat konflik muncul

$ git merge fitur-sapa
Auto-merging sapa.txt
CONFLICT (content): Merge conflict in sapa.txt
Automatic merge failed; fix conflicts and then commit the result.

Merge berhenti di tengah jalan. git status menampilkan:

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
        both modified:   sapa.txt

Penanda konflik di dalam berkas

Git menulis kedua versi ke berkas dengan penanda:

<<<<<<< HEAD
Halo semuanya!
=======
Halo, Kelas IT!
>>>>>>> fitur-sapa
  • Antara <<<<<<< HEAD dan ======= = versimu (branch tempat kamu berada).
  • Antara ======= dan >>>>>>> fitur-sapa = versi dari branch yang digabung.

Langkah menyelesaikan

  1. Buka berkas, putuskan isi akhir: pertahankan salah satu, gabungkan keduanya, atau tulis ulang.
  2. Hapus seluruh penanda (<<<<<<<, =======, >>>>>>>). Penanda yang tertinggal akan ikut ter-commit dan merusak kode!
  3. Jalankan program/tes untuk memastikan hasil gabungan benar.
  4. git add sapa.txt — menandai konflik di berkas itu selesai.
  5. git commit — menuntaskan merge (bisa tanpa -m untuk pesan default; di simulator, tambahkan -m).
printf "Halo semuanya!\nHalo, Kelas IT!\n" > sapa.txt   # isi akhir (di simulator)
git add sapa.txt
git commit -m "Gabungkan fitur-sapa dan selesaikan konflik"

Di editor seperti VS Code, tersedia tombol "Accept Current / Accept Incoming / Accept Both" di atas penanda konflik.

Membatalkan merge

Ragu atau berantakan? Kembali ke keadaan sebelum merge:

git merge --abort

Alat bantu

  • git status — daftar berkas konflik.
  • git diff — menampilkan bagian konflik.
  • git log --merge — commit yang terlibat konflik.
  • git mergetool — membuka alat visual yang dikonfigurasi.

Mengurangi konflik

  • Merge/pull dari main sesering mungkin ke branch fiturmu.
  • Pecah pekerjaan menjadi branch kecil dan berumur pendek.
  • Komunikasikan siapa mengerjakan berkas mana.
  • Gunakan formatter yang sama (agar tidak ada konflik spasi/format).

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X