Branch Nedir, Nasıl Kullanılır? — Github #7

İsmet Kizgin
3 min readNov 25, 2023

--

Git’in en önemli özelliklerinden biri, projenin farklı branch’lerde geliştirilebilmesidir. Branchler, projenin farklı versiyonlarının izlenmesini ve yönetilmesini sağlar. Bu makalede, Git branch kavramını ve nasıl kullanıldığını anlatacağım.

Sektörde “dal almak” olarak tabir edilen kavram aslında “branch oluşturmak” olarak geçiyor. Örneğin: “Master’dan dal alarak ilerle geliştirmeye.”

“Branch” kavramını, bilgisayarınızda bulunan bir klasöre benzetebilirsiniz. Bir klasörünüz olduğunu ve bu klasörü her seferinde kopyalayarak bir “klon” oluşturabileceğinizi düşünün. Oluşturduğunuz her klon üzerinde yapacağınız değişiklikler, ana klasörü etkilemez ve istediğiniz zaman ana klasörden tekrar bir kopya alabilirsiniz. Klon olarak oluşturduğunuz klasörde yaptığınız değişiklikleri bitirdikten sonra, aynısını ana klasöre taşırsınız. Temel mantık aslında budur.

Bu yapı, yazılım geliştirme sürecinde projeleri daha düzenli ve güvenli bir şekilde yönetmek için kullanılır. Her branch, farklı bir işlevi veya özelliği temsil eder ve bu sayede farklı ekipler veya geliştiriciler aynı anda bağımsız olarak çalışabilir. Branchlerde yapılan değişiklikler daha sonra birleştirilerek (merge) ana branch’e entegre edilir, böylece projenin bütünlüğü korunur ve daha etkili bir iş akışı sağlanır.

Branch’ler, geliştiricilere bağımsız alanlar sunar, böylece her biri kendi branch’inde çalışabilir. Ana branch’ten ayrı olarak, her branch, farklı bir işlevi veya özelliği temsil eder. Bu sayede, farklı ekipler veya geliştiriciler aynı anda farklı özellikleri geliştirebilir ve değişiklikleri çakışmadan izleyebilirler.

Ana branch, projenin en güncel ve kararlı halini temsil eder. Yeni bir özellik eklemek veya bir hata düzeltmesi yapmak istendiğinde, geliştiriciler ana branch’i değiştirmeden kendi branch’lerinde çalışır. Daha sonra bu değişiklikler ana branch’e entegre edilir, bu işleme de “birleştirme” (merge) denir. Bu sayede, geliştiricilerin birbirlerinin çalışmalarını etkilemeden verimli bir şekilde geliştirme yapmaları mümkün olur.

Birlikte bir örnek yapalım;

  • İlk adımda github profilimize gidip bir repository oluşturuyoruz.
  • Bu repository’i kendi bilgisayarımıza clone etmeniz gerekiyor.

Clone etmek için “git clone” komutunu kullanmanız gerekiyor.

  • Bilgisayarınızda bulunan projeyi VS Code vb. bir editör ile açın.
  • Ben index.html adında bir dosya oluşturup içerisine bir h1 etiketi ekleyerek bir web sayfası oluşturuyorum.
  • Oluşturduğum dosyayı sırası ile aşağıdaki komutları çalıştırarak ana branch’ime (master’a) gönderiyorum.
# Tüm değişikleri stage'e al diyoruz.
$ git add *

# Stage'e aldığımız değişikliklere bir açıklama girip kuyruğa yolluyoruz.
$ git commit -m 'initial commit'

# Kuyrukta bulunan değişiklikleri github'a gönderiyoruz.
$ git push
  • Şimdi oluşturduğumuz index.html dosyasındaki h1 etiketini değiştirerek bir branch’e gönderelim. İlk önce h1 etiketi içerisinde olan metni değiştiriyorum. Daha sonra sırası ile aşağıdaki komutları uygulamanızı istiyorum.
# "first-branch" adında bir branch oluşturuyoruz.
$ git branch first-branch

# Oluşturduğumuz branch'in github'tada oluşturulması için bilgisini gönderiyoruz.
$ git push --set-upstream origin first-branch

# Branch'leri ve hangi branch'te olduğumuzu görmek için branch listesi alıyoruz.
# Başında * olan bulunduğumuz branch'i temsil eder.
$ git branch

# Açtığımız branch'e geçiş sağlarız.
$ git switch first-branch

# Yaptığımız değişiklikleri stage'e alıyoruz.
$ git add *

# Stage'e aldığımız değişiklere bir açıklama ekliyoruz ve kuyruğa alıyoruz.
$ git commit -m 'Change index.html'

# Kuyrukta bulunan değişikler github'a gönderiyoruz.
$ git push
  • Github hesabınıza girip oluşturduğunuz branch’i gözlemleyebilirsiniz. Ana branch’inizde bulunan index.html içeriği ile oluşturduğunuz branch içerisindeki bilgi aynı olmayacaktır.
  • Şimdi oluşturduğumuz branch’i ana branch’imiz ile birleştirelim.
# Hangi branch'te olduğumuza bakalım.
$ git branch

# Ana branch'te değilsek branch değiştirelim.
$ git switch master

# Merge komutu ile bulunduğumuz branch'e
# yani ana branch'e yaptığımız değişiklikleri alıyoruz.
$ git merge origin/first-branch

# Aldığımız değişiklikleri ana branch'e gönderiyoruz.
$ git push
  • Yaptığınız değişiklikleri hem kod editörünüzden hemde github üzerinden gözlemleyebilirsiniz.

Basit bir şekilde sizlere branch mantığını anlatmaya ve örneklemeye çalıştım umarım yarlı olmuştur. 🙂

İyi Çalışmalar…

Yararlı Olabilecek Kaynaklar

Github Blog Serisi

9 stories

--

--