# Branch

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

Kısaca: Git'te branch, bir özellik ya da düzeltme üzerinde, birleştirene kadar ana kodu etkilemeden çalışmanızı sağlayan bağımsız bir geliştirme hattıdır.

## Git'te branch nedir?

Branch, yeni bir şey (özellik, hata düzeltmesi ya da deney) geliştirmek için ana çalışma hattından ayrılmanızı sağlar. Bir branch'te yaptığınız commit'ler diğer branch'leri etkilemez; böylece siz çalışırken ana kod kararlı kalır. İş hazır olduğunda, genellikle bir merge ya da pull request aracılığıyla ana hatta geri birleştirilir.

Git'te branch şaşırtıcı derecede hafiftir: yalnızca bir commit'i gösteren, hareket edebilen bir işaretçidir. Bir branch'te her commit yaptığınızda işaretçi yeni commit'e ilerler. `HEAD` adlı özel bir işaretçi şu anda hangi branch'te olduğunuzu izler; bu yüzden branch oluşturmak ya da değiştirmek neredeyse hiç zaman almaz.

Branch, üzerinde serbestçe deneme yapabileceğiniz, bir belgenin paralel kopyası gibidir. Düzenlemeler iyi sonuç verirse orijinaline katarsınız; vermezse kopyayı atarsınız. Çoğu depoda, kodun resmi sürümünü tutan ve genellikle `main` (eski projelerde çoğunlukla `master`) olarak adlandırılan bir varsayılan branch bulunur.

Takımlar genellikle bir branch stratejisi izler. Trunk-based development'ta geliştiriciler kısa ömürlü branch'ler açar ve bunları sık sık, çoğu zaman günde birkaç kez `main`'e birleştirir; Git Flow gibi daha ağır iş akışları ise geliştirme, sürüm ve acil düzeltmeler için uzun ömürlü branch'ler tutar. Branch, bir deponun (genellikle başka bir hesap altındaki) tam kopyası olan fork'tan da farklıdır.

## Önemli noktalar

- Branch, bir depo içindeki yalıtılmış bir geliştirme hattıdır.
- Git'te branch, bir commit'i gösteren hafif bir işaretçiden ibarettir.
- Varsayılan branch genellikle `main` olarak adlandırılır.
- Sık birleştirilen kısa ömürlü branch'ler merge çakışmalarını azaltır.

## Örnek: Bir feature branch üzerinde çalışmak

```bash
# Create a new branch and switch to it
git switch -c feature/search-bar

# Edit files, then commit on the branch
git add .
git commit -m "Add search bar component"

# Switch back to main and merge the feature
git switch main
git merge feature/search-bar

# Delete the branch once it has been merged
git branch -d feature/search-bar
```

## Sık sorulan sorular

**git switch ile git checkout arasındaki fark nedir?**

`git switch`, Git 2.23'te eklenen daha yeni bir komuttur ve yalnızca tek bir işi yapar: branch değiştirmek. `git checkout` da branch değiştirebilir ama dosyaları geri yükleme gibi başka işleri de üstlenir; birçok yeni başlayan bunu kafa karıştırıcı bulur.

**Branch ile fork arasındaki fark nedir?**

Branch, aynı depo içindeki ayrı bir çalışma hattıdır. Fork ise bir deponun genellikle farklı bir hesap altındaki tam kopyasıdır ve çoğunlukla yazma erişiminiz olmayan projelere katkı vermek için kullanılır.

**Varsayılan branch neden master yerine main olarak adlandırılıyor?**

2020 civarında büyük Git barındırma platformları ve birçok proje, daha kapsayıcı bir dil kullanmak için varsayılan branch adını `master`'dan `main`'e çevirdi. Git'in kendisi ise `init.defaultBranch` ayarıyla istediğiniz varsayılan adı seçmenize izin verir.

## Kaynaklar

- [Pro Git: Branches in a Nutshell](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell)

---

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