Branch
- Türkçe karşılığı
- dal
- Okunuşu
- brenç
Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.
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.
Bir bakışta
Ö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
mainolarak adlandırılır. - Sık birleştirilen kısa ömürlü branch'ler merge çakışmalarını azaltır.
Örnek
# 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-barSı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.
Sık karşılaştırılanlar
İlgili sayfalar
- GitSürüm Kontrolü, s. 10Git, dosyalardaki değişiklikleri zamanla izleyen ücretsiz, açık kaynaklı dağıtık sürüm kontrol sistemidir; iş birliğini ve hataları geri almayı kolaylaştırır.
- CommitSürüm Kontrolü, s. 5Commit, Git'te projenin dosyalarının; benzersiz bir kimlik, yazar, zaman damgası ve değişikliği anlatan bir mesajla kaydedilmiş anlık görüntüsüdür.
- MergeSürüm Kontrolü, s. 29Git'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.
- RebaseSürüm Kontrolü, s. 33Git'te rebase, bir branch'in commit'lerini başka bir commit'in üzerine yeniden uygular; geçmişi yeniden yazıp merge commit'siz, temiz ve doğrusal kılar.
- Pull RequestSürüm Kontrolü, s. 32Pull request, bir branch'teki değişiklikleri başka bir branch'e birleştirme önerisidir; kod birleşmeden önce ekibe inceleme, tartışma ve test alanı sunar.
- ForkSürüm Kontrolü, s. 9Fork, başkasının deposunun bir barındırma platformundaki kişisel kopyasıdır; özgürce denemeler yapmanızı ve değişiklikleri özgün projeye geri önermenizi sağlar.
- Git CheckoutSürüm Kontrolü, s. 12git checkout başka bir branch'e ya da commit'e geçer veya dosyaları önceki sürüme döndürür; yeni Git sürümleri bu işleri git switch ve git restore'a ayırır.
Kaynaklar
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin