Merge Conflict Nedir?
Yayın: · Son güncelleme:
Merge Conflict Nedir? Kısaca
Merge conflict, Git'in iki daldaki değişiklikleri kendiliğinden birleştiremediği durumdur. Genelde aynı dosyanın aynı satırı iki farklı dalda değiştirildiğinde çıkar ve hangi hâlin kalacağına sizin karar vermeniz gerekir.

Merge conflict nedir?
Merge conflict, birleştirme çakışması demektir. Git çoğu birleştirmeyi kendisi yapar, ancak aynı yerde iki farklı değişiklik görünce hangisinin doğru olduğunu bilemez. Bu noktada işlemi durdurur ve kararı size bırakır.
Çakışma bir hata değildir, ekip çalışmasının doğal sonucudur. Paniğe gerek yok. Hiçbir kod kaybolmaz, Git yalnız iki seçeneği yan yana koyup sizden hangisinin kalacağını seçmenizi bekler.
Çakışma nasıl görünür, nasıl çözülür?
Git çakışan dosyaya özel işaretler ekler. <<<<<<< ile ======= arası sizin dalınızdaki hâli, ======= ile >>>>>>> arası diğer daldaki hâli gösterir.
Örneğin siz bir butonun yazısını "Satın Al" yaptınız, arkadaşınız aynı satırı "Sepete Ekle" olarak değiştirdi. Dosyayı açar, doğru metni seçer ya da ikisini harmanlarsınız. Ardından işaretleri silip git add ve git commit ile birleştirmeyi tamamlarsınız. VS Code gibi editörler bu adımı tek tıklamalık seçeneklerle kolaylaştırır.
Çakışmayı azaltmanın yolları
Dallarınızı sık sık ana dalla güncelleyin. Bir hafta ayrı kalan dal, bir gün ayrı kalandan çok daha fazla çakışma üretir.
Küçük ve odaklı değişiklikler yapın, aynı dosyada çalışacaksanız ekip arkadaşınıza haber verin. Çözdükten sonra projeyi mutlaka çalıştırıp test edin, çünkü sözdizimi doğru görünen bir birleştirme mantık hatası taşıyabilir.
Sıkça Sorulan Sorular
Merge conflict çıkınca işlemi iptal edebilir miyim?
Evet. Birleştirmenin ortasındaysanız git merge --abort komutu her şeyi birleştirme öncesi hâline döndürür.
Çakışma neden sadece bazı dosyalarda çıkar?
Git satır bazında karşılaştırır. Farklı dosyalarda ya da aynı dosyanın farklı bölümlerinde yapılan değişiklikleri sorunsuz birleştirir; yalnız aynı bölge iki tarafta da değiştiyse çakışma çıkar.