Merge conflict (birleştirme çakışması), iki farklı dalda (branch) aynı dosyanın aynı satırları farklı şekilde değiştirildiğinde ortaya çıkar. Git hangisinin doğru olduğunu bilemez ve senden karar vermeni ister. Bu bir hata değil, normal bir durumdur.

Çakışma nasıl görünür?

Çakışan dosyada şöyle işaretler belirir:

<<<<<<< HEAD
Senin daldaki satir
=======
Diger daldan gelen satir
>>>>>>> ozellik-dali
  • <<<<<<< HEAD ile ======= arası: senin mevcut dalındaki hâli.
  • ======= ile >>>>>>> arası: birleştirilen daldan gelen hâli.

Çözüm adımları

  1. Dosyayı aç ve işaret bloklarını bul.
  2. Hangi hâli istediğine karar ver: birini sil, diğerini bırak veya ikisini birleştir.
  3. Tüm <<<<<<<, =======, >>>>>>> işaretlerini kaldır.
  4. Dosyayı kaydet, ardından çözüldü olarak işaretle ve tamamla:
git add cakisan_dosya.txt
git commit

İpuçları

Panikleyip her şeyi bozarsan, birleştirmeyi iptal edip başa dönebilirsin:

git merge --abort

VS Code gibi editörler çakışmaları renkli gösterir ve ‘Accept Current / Incoming / Both’ düğmeleriyle işi kolaylaştırır.