Bir gün sabah, Git ile çalışırken, "merge" işlemi yaparken bir hata alırsınız: *Merge Conflict*… Hemen hemen herkes bu hatayla karşılaşmıştır. Peki, bu hata ne anlama gelir ve nasıl çözülür?
Git Merge Conflict Nedir?
Örneğin, bir dosyada iki farklı geliştirici aynı satırda değişiklik yaptıysa, Git bu durumda hangi değişikliğin kabul edileceğine karar veremez. Bu yüzden size çatışmanın bulunduğu dosyayı manuel olarak çözmenizi söyler.
Merge Conflict Hatası ile Nasıl Karşılaşırsınız?
Şimdi siz kendi dalınızı ana dala birleştirmeye çalıştığınızda, Git birleştirme işlemini yaparken bu çatışmayı tespit eder ve bir hata mesajı gösterir. Bu mesajı gördüğünüzde, işte merge conflict hatasıyla karşı karşıyasınız demektir!
Merge Conflict Çözümü
#### 1. Çatışmayı Tespit Etme
Öncelikle, çatışmanın hangi dosyada olduğunu öğrenmek için terminal üzerinden şu komutu çalıştırın:
git status
Bu komut, üzerinde çatışma olan dosyaları gösterecektir.
#### 2. Çatışmalı Dosyayı Düzenleme
Git, çatışmalı dosyayı şuna benzer şekilde işaretler:
<<<<<<< HEAD
Bu, birinci dalın içeriği
=======
Bu, ikinci dalın içeriği
>>>>>>> branch_name
Yukarıdaki örnekte gördüğünüz gibi, <<<<<<< HEAD ve >>>>>>> branch_name arasında kalan satırlar, hangi satırların çatıştığını gösterir. Bu kısmı çözmek için, bu iki satır arasındaki değişiklikleri gözden geçirip, hangi değişikliğin doğru olduğuna karar vermelisiniz.
# 3. Çatışmayı Çözme
Her şeyden önce, çatışmanın nedenini anlamaya çalışın. Bu iki değişikliği birleştirebilir misiniz? Birini mi tercih ediyorsunuz? Ya da belki her ikisini de birleştirerek yeni bir çözüm oluşturmanız gerekebilir. Değişikliklerinizi yaparak, çelişkili bölümü çözün ve çatışmanın işaretlerini (<<<<<, =======, >>>>>) kaldırın.
Çatışmayı çözdükten sonra, bu değişiklikleri kaydetmek için şu komutu çalıştırın:
git add
Bu komut, çatışma çözülmüş dosyayı sahneye (staging area) ekler.
#### 5. Merge İşlemini Tamamlama
Son olarak, çözümü onaylamak için şu komutu çalıştırın:
git commit
Git, çatışmanın çözüldüğünü ve birleşmenin tamamlandığını belirten bir mesaj eklemenizi isteyebilir. Artık birleştirme işleminiz tamamlanmış oldu!
Merge Conflict İle Karşılaşmamak İçin İpuçları
- Daha Az Çakışma Olan Alanlarda Çalışın: İki kişi aynı dosya üzerinde çalışıyorsa, farklı bölümlere odaklanmak çakışmayı azaltabilir.
- Kod İncelemeleri Yapın: Kodlarınızı başkalarıyla gözden geçirerek, olası çakışmaların daha erken tespit edilmesini sağlayabilirsiniz.