Merge Conflict Nedir?
Öncelikle, Git'in hayatımızdaki rolünü anlamamız gerek. Git, birden fazla geliştiricinin aynı dosya üzerinde aynı anda çalışmasına imkan verir. Ancak bazen, iki farklı kişi aynı satıra değişiklik yaparsa, Git bu değişiklikleri nasıl birleştireceğini bilemez ve işte o anda bir merge conflict hatası meydana gelir. Kısacası, Git "Bilmiyorum, hangisini kullanmalıyım?" der ve bizden müdahale bekler.
Bu hatayı daha önce duymamış olabilirsiniz, ancak işler bazen karmaşıklaştığında bu hatayı görmemek mümkün değildir.
Merge Conflict Hatası Nasıl Çözülür?
Her şey, o karmaşık çatışmayı çözüme kavuşturmakla başlar. Bu adımlar, bana doğru yolu bulmamda yardımcı oldu:
1. Git Status Komutunu Kullanmak
Öncelikle, terminalde git status komutunu çalıştırarak hangi dosyaların çatışmaya neden olduğunu öğrenmelisiniz. Git, çatışmalı dosyaları size gösterecek.
$ git status
Bu komut, hangi dosyaların unmerged olduğunu gösterir ve çatışmanın tam olarak hangi dosyalarda olduğunu anlamanızı sağlar.
2. Çatışmaları Çözmek
Şimdi en kritik kısım: Dosyayı açıp değişiklikleri manuel olarak gözden geçireceğiz. Git, çatışmaya düşen dosyada değişiklikleri <<<<<<<, ======= ve >>>>>>> gibi özel işaretlerle belirtir.
Bu işaretler arasındaki kodları dikkatlice gözden geçirin. Hangi kısmın geçerli olması gerektiğini belirleyin ve gereksiz satırları silin. İşte böyle bir kod parçası:
<<<<<<< HEAD
const user = "Zeynep";
=======
const user = "Ali";
>>>>>>> feature-branch
Bu durumda, iki farklı kişi aynı satıra değişiklik yapmış. Birisi "Zeynep" demiş, diğeri ise "Ali" demiş. Hangisinin doğru olduğuna karar vermek size kalmış.
3. Değişiklikleri Commit Etmek
Çatışmalar çözüldükten sonra, artık dosyaları kaydedebiliriz. Çatışma çözülmüş dosyaları git add komutuyla ekleyelim:
$ git add
Ardından, değişiklikleri commit edin:
$ git commit
Ve son olarak, merge işlemini tamamlayın:
$ git merge --continue
Merge Conflict Öncesi ve Sonrası
Birçok geliştirici, merge conflict hatasını zor ve korkutucu bir şey olarak görür, ancak aslında çözüme kavuşturulabilmesi gayet basittir. İyi bir versiyon kontrolü ve dikkatli kod yazımı ile merge conflict’leri en aza indirebilirsiniz.
Unutmayın, her hata yeni bir öğrenme fırsatıdır ve Git, sizlere hata yapmanıza rağmen kodu doğru bir şekilde yönetme imkanı sunar. Merge conflict çözümünün ardından, projeniz bir adım daha sağlıklı bir hale gelmiş olur.