Git’de branch kullanımı nasıl olmalı?

Takımlar halinde git kullanımı, tarihi, branchleri ve isimlendirilmeleri çok önemlidir. Çünkü geriye dönüşler, ezilmeler veya çakışmalar olma ihtimali çok yüksektir. Doğru kullanım saatleri hatta günlerinizi kurtaracaktır. Bir geliştirici için en önemsiz gözüken önemli konulardan biridir. Her şeyde olduğu gibi burda da bir mimari söz konusudur ve bu yapıya ne kadar uyulursa takımın hızı da o oranda artacaktır.

Branchler

Branchler genelde alt kırılımlar(klasör) içinde düzenli ve okunabilir gözükebilmesi için feature/yeni-ozellik1 veya bugfix/ekran-hatasi şeklinde olmalıdır. Ayrıca feature veya bugfix‘ten sonra task id + vereceğimiz isimler anlamlı olması gerekir. Buradaki task id belirleyici olup jira, goodday veya benzeri proje yönetim uygulamaları içerisinde açılan task, user story veya bug gibi özelliklerin id’si olabilir. Böylece eğer entegrasyon özelliği yoksa açılan branchin ne ile bağlantılı olduğu daha kolay anlaşılacaktır. Yeni bir özellik yaptığımızda bunu feature/ ile, bir hata düzelteceğimiz zaman bunu bugfix/, canlıyı etkileyecek bir bug olduğunda ise hotfix/ ile prefixliyoruz. Branchler her zaman main yani master branch’inden yaratılmalıdır.

Örn: bugfix/125-fixed-home-screen yada feature/1694-added-new-video-type

Bugfix, hotfix ve feature neden farklı?

Bugfix ve hotfix branchleri diğer feature branchleri ile de merge edilebilir. Çünkü bir özellik(feature) geliştirilirken bir bug ile karşılaşabilirsiniz. Eğer bug canlıdaki uygulama, web sitesi veya bir yapıyı etkiliyorsa master branch’i üzerinde acil düzeltilmesi gerekir. Bunun için hotfix prefixinden yararlanılır. Eğer aciliyeti olmayan bir konuysa bugfix prefixi ile bunu bir sprint içerisinde diğer işleri etkilememesi için feature ile merge etmeniz gerekebilir. Ancak feature branchlerini sadece develop veya test ile merge ediyoruz. Hotfix ise takım lideri bilgisinde direk master’a merge edilebilir çünkü acil durum senaryoları için geçerli olacak durumdur.

Master ve Develop farkı

Master branch’in özelliği canlıdaki uygulamanın son versiyondaki kod hali demek. Develop branch’i ise yine tamamiyle çalışan kod demek, ancak henüz tamamen test edilmedi yani her an patlayabilir demek.

Örnek Senaryo

Elimizde bir bug var ve bunu yapacağımız çözümleme aşamalarımız;

  1. Master’dan yeni bir branch oluşturma (bugfix/3242-fixed-splash-screen)
  2. Commitleri ayrı ayrı düzenli ve anlaşılır bir şekilde göndermek
  3. PR(pull request) açmadan önce geliştiricinin son kullanıcı testlerini yapması
  4. Develop branchine PR açmak
  5. Diğer geliştiricilerin pull requesti inceleme ve onaylama safhası
  6. Takım lideri tarafından PR approve yada reject edilmesi
  7. Develop branchinin ekip tarafından tekrar ve QA(Quality Assurance) tarafından test edilmesi
  8. Takım liderinin develop branchinden master branchine PR oluşturması
  9. Develop branchindeki Uygulama demosunun PO veya PM’e yapılması
  10. PM yada PO tarafından PR onaylanması

Örnek senaryoda CI&CD veya ekstra test aktivitelerinin olması durumunda değişiklikler olabilir. Bu durum sadece baz alınabilmesi için örneklendirilmiştir.

Git’de branch kullanımı nasıl olmalı?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön