Branch Ne Demek, Git'te Dal Neyi İfade Ediyor?

Haberci

SEO UZMANI
Yönetici
Katılım
21 May 2023
Mesajlar
711
Tepki
17
Puan
18
940




Bir projede iki kişi aynı dosyaya dokunmadan çalışabiliyorsa, bunu sağlayan şey klasör kopyalamak değil. Sürüm kontrolünde bu iş dalla yapılıyor: geliştirme kendi hattında ilerliyor, hazır olduğunda ana hatta katılıyor.

Bu yazı dalın ne olduğunu, ucunun neyi gösterdiğini, çalışma ağacıyla ilişkisini ve birleştirmenin dalla nasıl bağlandığını Git'in kendi sözlüğüne dayanarak topluyor.

Dal ne demek?​


Git'in terim sözlüğü tanımı kısa tutuyor: dal, bir geliştirme hattıdır.

Tanımın devamı yapıyı kuruyor. Bir daldaki en son işleme, o dalın ucu olarak anılıyor. Bu uç, dal başı adı verilen bir referansla gösteriliyor ve dalda geliştirme ilerledikçe ileri doğru hareket ediyor.

  • Dal: Bir geliştirme hattı.
  • Uç: O hattaki en son işleme.
  • Dal başı: Ucu gösteren ve geliştirmeyle birlikte ilerleyen referans.

Kaç dal olabilir?​


Sözlük sınır koymuyor: tek bir Git deposu istenen sayıda dalı takip edebiliyor.

Ancak çalışma ağacı için durum farklı. Tanıma göre çalışma ağacınız bunlardan yalnız biriyle ilişkili oluyor; buna geçerli ya da üzerine geçilmiş dal deniyor.

Bu ayrım, günlük kullanımdaki karışıklığın kaynağını açıklıyor: depoda onlarca dal durabilir ama diskteki dosyalar her an tek bir dalın hâlini yansıtır.

HEAD neyi gösteriyor?​


Sözlük HEAD'i geçerli dal olarak tanımlıyor ve ayrıntısını da veriyor: çalışma ağacınız normalde HEAD'in işaret ettiği ağacın durumundan türetiliyor.

Aynı madde bir istisna anıyor: ayrık HEAD kullanıldığında referans bir dalı değil, doğrudan herhangi bir işlemeyi gösteriyor. Beklenmedik bir durumda kendinizi bu hâlde bulursanız, dosyalarınızın hangi noktadan geldiğini açıklayan tanım budur.

Püf nokta' Alıntı:
Depoda kaç dal olduğu değil, çalışma ağacının hangisine bağlı olduğu belirleyici.

İşleme ile ilişkisi​


Dalın ucundaki şey bir işleme. Sözlük işlemeyi isim olarak Git geçmişindeki tek bir nokta diye tanımlıyor ve projenin bütün geçmişinin birbiriyle ilişkili işlemeler kümesi olarak temsil edildiğini söylüyor.

Fiil olarak ise işleme, projenin durumunun yeni bir anlık görüntüsünü Git geçmişine kaydetme eylemi. Yani her işleme bir durum kaydı, dal da bu kayıtların oluşturduğu hat.

Yanlış bir işlemeyi geri almanın yollarını commit geri alma yazımızda ele almıştık.

Varsayılan dal​


Sözlük, depo oluşturulduğunda varsayılan bir geliştirme dalının yaratıldığını ve etkin dal hâline geldiğini belirtiyor. Aynı madde bu dalın çoğu durumda yerel geliştirmeyi içerdiğini, ancak bunun tamamen bir teamül olduğunu ve zorunlu olmadığını da ekliyor.

"Teamül" vurgusu önemli: hangi dalın ana hat sayılacağı teknik bir zorunluluk değil, ekibin kararı.

Dal birleştirilince ne oluyor?​


Sözlük birleştirmeyi fiil olarak şöyle tanımlıyor: başka bir dalın içeriğini geçerli dala getirmek. Bu dal başka bir depodan geliyorsa, önce uzak dalın getirilmesi, sonra sonucun geçerli dala birleştirilmesi gerekiyor.

Tanım bu ikilinin adını da veriyor: getirme ve birleştirme işlemlerinin bu birleşimine çekme deniyor. Yani günlük kullanımdaki tek komutun altında iki ayrı adım duruyor.

Git ile barındırma hizmeti arasındaki farkı GitHub yazımızda anlatmıştık.

Neden ayrı hatlarda çalışılıyor?​


Tanımın "geliştirme hattı" ifadesi pratik bir düzeni anlatıyor: bir işin yarım kalmış hâli, başkasının çalıştığı hattı bozmuyor. Her hat kendi ucunu taşıdığı için, bir daldaki değişiklik diğerine ancak birleştirmeyle geçiyor.

Bu, sürüm kontrolünün klasör kopyalamaktan farkını da açıklıyor. Kopyada iki ayrı gerçeklik oluşur ve hangisinin doğru olduğu belirsizleşir; dalda ise ortak bir geçmiş vardır ve hatların nerede ayrılıp nerede birleştiği kayıtlıdır.

Otomatik birleştirme neyi yapıyor?​


Sözlük, birleştirmenin değişiklikleri belirleyen otomatik bir süreçle yürütüldüğünü belirtiyor. Yani iki hattaki farklar elle karşılaştırılmıyor; araç hangi satırın nereden geldiğini kendisi çıkarıyor.

Bu otomatik sürecin karar veremediği durumlar da var; aynı satır iki hatta birden değiştiğinde işi devralmak gerekiyor. Sürekli tümleştirme akışlarında bu adımların önbellekle nasıl etkileştiğini GitHub Actions önbellek yazımızda ele almıştık.

Sık Sorulan Sorular​


Branch ne demek?
Git sözlüğünün tanımıyla bir geliştirme hattı; en son işlemesi o dalın ucu olarak anılıyor.

Bir depoda kaç dal olabilir?
Sözlük sınır koymuyor; depo istenen sayıda dalı takip edebiliyor.

Çalışma ağacı kaç dala bağlı?
Yalnız birine; buna geçerli ya da üzerine geçilmiş dal deniyor.

HEAD nedir?
Geçerli dal; ayrık HEAD durumunda ise doğrudan bir işlemeyi gösteriyor.

Varsayılan dalın adı zorunlu mu?
Değil. Sözlük bunun teamül olduğunu ve zorunlu olmadığını belirtiyor.

Özetle​


Dal, bir geliştirme hattı; ucunda en son işleme duruyor ve dal başı bu ucu göstererek ilerliyor. Depo istediğiniz kadar dal tutabilir ama çalışma ağacı her an yalnız birine bağlı. Birleştirme, başka bir dalın içeriğini geçerli dala getirmek; uzak bir daldan geliyorsa önce getirme, sonra birleştirme adımı işliyor.

Ekibinizde hangi dalın ana hat sayıldığı yazılı olarak belirli mi?

Güncelleme: 2 Eylül 2026. Git'in resmî terim sözlüğündeki dal, işleme, birleştirme, HEAD ve varsayılan dal maddeleri kontrol edildi.



Dijital Dünyanıza Yön Veren Pusula
 

Ekli dosyalar

  • banner_06.jpg
    banner_06.jpg
    5.1 KB · Görüntüleme: 1
Geri
Üst