# Merge

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

Kısaca: Git'te merge, bir branch'teki değişiklikleri başka bir branch'e katarak ayrı geliştirme hatlarını tek ve ortak bir geçmişte yeniden birleştirir.

## Git'te merge nedir?

Merge, ayrı branch'lerde yapılan işlerin yeniden bir araya gelme yoludur. Bir feature branch'i `main`'e merge ettiğinizde Git, feature branch'indeki commit'lerin değişikliklerini entegre eder; böylece `main` artık yeni işi de içerir. Her iki branch'in geçmişi korunur.

Git iki ana yolla birleştirme yapar. Hedef branch, feature branch oluşturulduğundan beri değişmediyse Git, branch işaretçisini basitçe ileri taşıyan bir fast-forward merge yapar. İki branch'te de yeni commit'ler varsa Git üç yönlü (three-way) merge yapar: her branch'i ortak atalarıyla karşılaştırır ve birleşik sonucu, iki ebeveyni olan yeni bir merge commit'e kaydeder.

Merge çakışması (conflict), her iki branch de aynı dosyanın aynı satırlarını değiştirdiğinde ortaya çıkar; Git hangi sürümü tutacağına karar veremez. Git, çakışan bölümleri `<<<<<<<`, `=======` ve `>>>>>>>` işaretleriyle belirtir; dosyayı düzenleyip doğru içeriği bırakmanız ve sonucu commit etmeniz gerekir. Bu, iki kişinin ortak bir belgede aynı cümleyi düzenlemesine benzer: nihai ifadeye birinin karar vermesi gerekir.

Merge sıklıkla rebase ile karşılaştırılır. İkisi de bir branch'teki değişiklikleri diğerine getirir; ancak merge geçmişi merge commit'ler dahil olduğu gibi korurken, rebase düz ve doğrusal bir geçmiş oluşturmak için commit'leri yeniden yazar. Başkalarının da kullandığı branch'ler için merge genellikle daha güvenli seçimdir.

## Önemli noktalar

- Merge, bir branch'teki değişiklikleri başka bir branch'e entegre eder.
- Fast-forward merge yalnızca işaretçiyi ilerletir; three-way merge ise bir merge commit oluşturur.
- İki branch aynı satırları değiştirdiğinde çakışma oluşur ve elle çözülmesi gerekir.
- Merge geçmişi korur, rebase ise geçmişi düz bir çizgiye yeniden yazar.

## Örnek: Bir branch'i birleştirmek ve çakışmayı çözmek

```bash
# Switch to the branch you want to merge into
git switch main

# Bring in the changes from the feature branch
git merge feature/search-bar

# If there is a conflict: fix the marked files, then
git add src/search.ts
git commit            # completes the merge

# Or cancel the merge and go back to how things were
git merge --abort
```

## Sık sorulan sorular

**Merge çakışması nedir?**

Merge çakışması, iki branch bir dosyanın aynı bölümünü farklı şekillerde değiştirdiğinde ve Git bunları otomatik olarak birleştiremediğinde ortaya çıkar. Dosyayı doğru nihai sürüme getirerek düzenler, `git add` ile stage eder ve commit ederek çözersiniz.

**Merge ile rebase arasındaki fark nedir?**

Merge, branch'leri birleştirir ve tüm geçmişlerini korur; gerektiğinde bir merge commit ekler. Rebase ise commit'lerinizi başka bir branch'in üzerine taşır ve bunları yeniden yazarak temiz, doğrusal bir geçmiş üretir.

**Squash merge nedir?**

Squash merge, bir branch'teki tüm commit'leri hedef branch üzerinde tek bir yeni commit'te birleştirir. Ana geçmişi derli toplu tutar; bunun bedeli, feature branch'indeki tek tek commit'lerin kaybolmasıdır.

## Kaynaklar

- [Git documentation: git-merge](https://git-scm.com/docs/git-merge)

---

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