Git Branch Yapısı ve Örnekler
Git branch yapısı, geliştirme sürecinizin verimli ve düzenli bir şekilde yürütülmesini sağlar. Bu yapı, ekip üyelerinin birbirlerinin çalışmalarını kesintiye uğratmadan yeni özellikler eklemelerine, hata düzeltmelerine ve kritik güncellemeler yapmalarına olanak tanır. Aşağıda, yaygın olarak kullanılan branch türlerini ve bunların nasıl kullanıldığını açıklıyoruz.
Ana Branch'ler
Ana branch'ler, yazılımın farklı aşamalarını temsil eden ve ekibin tüm üyeleri tarafından ortak olarak kullanılan branch'lerdir. Bu branch'ler, projenin gelişim sürecini organize eder ve kodun hangi aşamada olduğunu belirler.
production: Bu branch, canlı ortamda çalışan, son kullanıcıların erişebileceği stabil kodu içerir. Production branch'ine yalnızca test edilmiş ve onaylanmış kodlar merge edilir. Bu nedenle,productionbranch'i her zaman dağıtıma hazır kodu temsil eder. Bu branch üzerinde yapılacak hatalar, doğrudan kullanıcıları etkileyebileceği için son derece dikkatli olunmalıdır.Örnek Kullanım: Eğer test süreci tamamlanmış ve canlıya alınacak bir değiş
iklik mevcutsa, bu değişiklik
productionbranch'ine şu şekilde merge edilir:
development: Geliştirme sırasında kullanılan ana branch'tir. Yeni özelliklerin geliştirilmesi ve hata düzeltmelerinin yapılması bu branch üzerinde gerçekleşir.developmentbranch'i, ekibin bir araya gelerek çalıştığı ve henüz üretim ortamına geçmemiş olan en son kodu içerir. Bu branch, genellikle sık sık güncellenir ve diğer feature branch'lerden gelen değişiklikler burada toplanır. Ancak,developmentbranch'ine yapılacak merge istekleri (pull request) yalnızca yönetici tarafından incelenir ve onaylanır.Örnek Kullanım: Yeni bir özellik üzerinde çalışmaya başlamak için
developmentbranch'inden bir feature branch oluşturulur:
test:testbranch'i,developmentbranch'inde tamamlanan değişikliklerin test edilmesi için kullanılır. Kodlar,productionbranch'ine geçmeden önce bu branch üzerinde test edilir. Bu branch, hata ayıklama ve test süreçleri için idealdir.testbranch'ine yapılacak tüm merge işlemleri yalnızca yönetici tarafından gerçekleştirilir.Örnek Kullanım: Development branch'indeki kodun test edilmesi için
testbranch'ine merge edilir:
Feature ve Bugfix Branch'leri
feature/{özellik-adı}: Yeni bir özellik geliştirilirken kullanılan branch türüdür.featurebranch'leri,developmentbranch'inden oluşturulur ve geliştirme tamamlandığında yinedevelopmentbranch'ine merge edilir. Bu branch'ler, farklı özelliklerin bağımsız olarak geliştirilmesine olanak tanır ve diğer geliştiricilerin çalışmalarını etkilemeden ilerlemesini sağlar.Örnek Kullanım: "user-authentication" adlı bir özellik geliştirmek için şu adımlar izlenir:
git checkout -b feature/user-authentication developmentGeliştirme tamamlandıktan sonra
featurebranch'idevelopmentbranch'ine merge edilir:git checkout development git merge feature/user-authentication
fix/{hata-adı}: Hata düzeltmeleri için kullanılan branch türüdür. Bu branch'ler,developmentbranch'inden oluşturulur ve hata düzeltmesi tamamlandıktan sonra tekrardevelopmentbranch'ine merge edilir.fixbranch'leri, hata düzeltme süreçlerini izole eder ve bu sayede diğer geliştirme süreçleriyle çakışmaların önüne geçilir.Örnek Kullanım: Giriş formundaki bir hatayı düzeltmek için şu adımlar izlenir:
Hata düzeltmesi tamamlandıktan sonra fix branch'i development branch'ine merge edilir:
Hotfix Branch'leri
hotfix/{hata-adı}: Üretim ortamındaki kritik hataların acil olarak düzeltilmesi için kullanılan branch türüdür.hotfixbranch'leri, doğrudanproductionbranch'inden oluşturulur ve düzeltme tamamlandığında hemproductionhem dedevelopmentbranch'lerine merge edilir. Bu branch'ler, anında müdahale gerektiren sorunları izole ederek hızla çözüm getirmeyi amaçlar.productionvedevelopmentbranch'lerine yapılacak bu merge işlemleri de yalnızca yönetici tarafından gerçekleştirilir.Örnek Kullanım: Canlı ortamda ortaya çıkan kritik bir hatayı düzeltmek için şu adımlar izlenir:
Hata düzeltmesi tamamlandıktan sonra hotfix branch'i önce production ardından development branch'ine merge edilir:
Not: Development, test ve production branch'lerine yapılacak tüm merge işlemleri ve pull request'ler, yalnızca yönetici tarafından incelenir ve onaylanır. Bu süreç, kodun kalitesini ve stabilitesini korumak için önemlidir.
