# Merge Conflict

Adres: https://softwaredictionary.org/tr/terimler/merge-conflict
Kategori: Sürüm Kontrolü
Son güncelleme: 2026-09-30
Türkçe karşılığı: birleştirme çakışması
Okunuşu: mörc konflikt

Kısaca: Merge çakışması, iki branch bir dosyanın aynı satırlarını değiştirdiği için Git'in otomatik birleştiremediği, sonuca birinin karar vermesi gereken durumdur.

## Git'te merge çakışması nedir?

Git, farklı kişiler kodun farklı bölümlerini değiştirdiği sürece işleri otomatik olarak birleştirmekte çok iyidir. Merge çakışması, iki branch aynı dosyanın aynı satırlarını farklı şekillerde değiştirdiğinde ya da bir branch, diğerinin sildiği bir dosyayı düzenlediğinde ortaya çıkar. Git hangi sürümün doğru olduğunu bilemez; bu yüzden merge'i durdurur ve karar vermenizi ister.

Çakışma olduğunda Git, etkilenen bölümleri doğrudan dosyanın içinde işaretler. `<<<<<<<` ile `=======` arasındaki satırlar mevcut branch'inizin sürümünü, `=======` ile `>>>>>>>` arasındaki satırlar ise gelen branch'in sürümünü gösterir. Çakışmayı çözmek için dosyayı doğru nihai içeriğe getirir, işaretleri siler, dosyayı `git add` ile stage eder ve merge'i `git commit` ile tamamlarsınız. Çakışmalar bir rebase, bir cherry-pick veya bir `git pull` sırasında da ortaya çıkabilir.

Merge çakışması, ortak bir belgede aynı cümleyi farklı şekillerde düzelten iki editöre benzer: birinin iki sürümü de okuyup nihai ifadeye karar vermesi gerekir. Çoğu kod editörü, çakışmaları bir tarafı, diğerini ya da her ikisini kabul etmek için düğmelerle gösterir. `git merge --abort` ile her zaman geri çekilip merge öncesi duruma dönebilirsiniz.

Merge çakışması bir hata ya da bir şeyin bozulduğunun işareti değildir; Git'in insandan karar istemesidir. Çakışmalar mantık hatalarından da farklıdır: Git, birleştirildiğinde programı yine de bozan iki değişikliği sorunsuz biçimde merge edebilir; bu yüzden her merge'den sonra testler çalıştırılmalıdır. Branch'leri kısa ömürlü tutmak ve ana branch ile sık senkronize olmak çakışmaları küçük ve çözmesi kolay tutar.

## Önemli noktalar

- Merge çakışması, iki branch aynı satırları değiştirdiğinde ya da biri diğerinin sildiği bir dosyayı düzenlediğinde oluşur.
- Git, çakışmaları dosyada `<<<<<<<`, `=======` ve `>>>>>>>` işaretleriyle belirtir.
- Dosyayı düzenleyip işaretleri kaldırarak, `git add` çalıştırıp ardından commit ederek çözün.
- `git merge --abort` merge'i iptal eder ve önceki durumu geri getirir.
- Küçük ve sık birleştirilen branch'ler daha az ve daha basit çakışmaya yol açar.

## Örnek: Bir merge çakışmasını çözmek

```bash
git merge feature/new-header
# CONFLICT (content): Merge conflict in src/header.html

git status            # lists files with unresolved conflicts

# Inside src/header.html, Git has inserted both versions:
# <<<<<<< HEAD
# <h1>Welcome back</h1>
# =======
# <h1>Hello again</h1>
# >>>>>>> feature/new-header

# Edit the file to the final version, remove the markers, then:
git add src/header.html
git commit            # completes the merge
```

## Sık sorulan sorular

**Git'te merge çakışması nasıl çözülür?**

Çakışan her dosyayı açın, çakışma işaretleri arasındaki sürümlerden birini seçin ya da bunları birleştirin ve işaretleri silin. Ardından dosyaları `git add` ile stage edin ve merge'i tamamlamak için `git commit` çalıştırın.

**Çakışması olan bir merge nasıl iptal edilir?**

Merge'i durdurmak ve branch'inizi merge başlamadan önceki duruma döndürmek için `git merge --abort` çalıştırın. Rebase sırasında bunun karşılığı `git rebase --abort` komutudur.

**Merge çakışmalarından nasıl kaçınılır?**

Onlardan tamamen kaçınamazsınız, ancak seyrek ve küçük olmalarını sağlayabilirsiniz. Branch'leri kısa ömürlü tutun, ana branch'ten en son değişiklikleri sık sık çekin ve büyük biçimlendirme değişikliklerini özellik geliştirmeyle karıştırmayın.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
