Git dallanma stratejisini benimseme

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Git gibi dağıtılmış sürüm denetimi sistemleri, kodu paylaşmak ve yönetmek için sürüm denetimini kullanma konusunda size esneklik sağlar. Ekibinizin bu esneklik ile işbirliği yapma ve kodu tutarlı bir şekilde paylaşma ihtiyacı arasında bir denge bulması gerekir.

Ekip üyeleri, başkalarıyla paylaşılan Git dalları aracılığıyla kod değişikliklerini yayımlar, paylaşır, gözden geçirir ve yineler. Ekibiniz için bir dallanma stratejisi benimseyin. Daha iyi işbirliği yapabilir ve sürüm denetimini yönetmek için daha az zaman harcayabilir ve kod geliştirmeye daha fazla zaman ayırabilirsiniz.

Aşağıdaki dallanma stratejileri, Microsoft'ta Git'i kullanma şeklimizi temel alır. Daha fazla bilgi için bkz . Microsoft'ta Git'i kullanma şeklimiz.

Dal stratejinizi basit tutun

Dal stratejinizi basit tutun. Stratejinizi şu üç kavramdan oluşturun:

  • Tüm yeni özellikler ve hata düzeltmeleri için özellik dallarını kullanın.
  • Çekme isteklerini kullanarak özellik dallarını ana dalla birleştirin.
  • Yüksek kaliteli, güncel bir ana dal tutun.

Bu kavramları genişleten ve çelişkileri önleyen bir strateji, ekibiniz için tutarlı ve takip etmek kolay bir sürüm denetimi iş akışına neden olur.

Çalışmanız için özellik dallarını kullanma

Ana dalınızı temel alarak özellik dallarında özelliklerinizi geliştirin ve hataları düzeltin. Bu dallar konu dalları olarak da bilinir. Özellik dalları, devam eden çalışmayı ana daldaki tamamlanan çalışmadan ayırır. Git dalları oluşturmak ve bakımını yapmak için ucuzdur. Küçük düzeltmeler ve değişiklikler bile kendi özellik dallarına sahip olmalıdır.

temel dallanma iş akışının görüntüsü

Tüm değişiklikleriniz için özellik dalları oluşturmak, geçmişin gözden geçirilmesini kolaylaştırır. Dalda yapılan işlemelere ve dalı birleştirilen çekme isteğine bakın.

Özellik dallarınızı kurala göre adlandırma

Dalda yapılan işleri tanımlamak için özellik dallarınız için tutarlı bir adlandırma kuralı kullanın. Dal adına, dalı kimin oluşturduğu gibi başka bilgiler de ekleyebilirsiniz.

Özellik dallarınızı adlandırmak için bazı öneriler:

  • kullanıcılar/kullanıcı adı/açıklama
  • users/username/workitem
  • hata düzeltmesi/açıklaması
  • feature/feature-name
  • feature/feature-area/feature-name
  • düzeltme/açıklama

Not

Dal adlandırma stratejisini zorunlu kılmak için ilkeleri ayarlama hakkında bilgi için bkz . Dal klasörleri gerektir.

Uzun süre çalışan dalları yönetmek için özellik bayraklarını kullanma

Kodunuzda özellik bayraklarını kullanma hakkında daha fazla bilgi edinin.

Çekme istekleriyle kodu gözden geçirme ve birleştirme

Çekme isteğinde gerçekleşen gözden geçirme, kod kalitesini geliştirmek için kritik öneme sahiptir. Yalnızca gözden geçirme işleminizden geçen çekme istekleri aracılığıyla dalları birleştirin. Çekme isteği olmadan dalları ana dala birleştirmekten kaçının.

Çekme isteklerindeki incelemelerin tamamlanması zaman alır. Ekibiniz, çekme isteği oluşturucularından ve gözden geçirenlerden beklenenler konusunda hemfikir olmalıdır. Ekibiniz genelinde fikir paylaşmak ve kod tabanınızla ilgili bilgileri yaymak için gözden geçiren sorumluluklarını dağıtın.

Başarılı çekme istekleri için bazı öneriler:

  • İki gözden geçiren, araştırmaya göre en uygun sayıdır.
  • Ekibinizin zaten bir kod gözden geçirme işlemi varsa, çekme isteklerini zaten yaptığınız işlemlere getirin.
  • Aynı gözden geçirenleri çok sayıda çekme isteğine atamaya dikkat edin. Gözden geçiren sorumlulukları ekip genelinde paylaşıldığında çekme istekleri daha iyi çalışır.
  • Gözden geçirenleri değişikliklerinize hızla ulaştırmak için açıklamada yeterli ayrıntı sağlayın.
  • Çekme isteğinizle birlikte hazırlanmış bir ortamda çalışan değişikliklerinizin derlemesini veya bağlı sürümünü ekleyin. Diğerleri değişiklikleri kolayca test edebilir.

Yüksek kaliteli, güncel bir ana dal tutun

Ana dalınızdaki kod testleri geçmeli, temiz bir şekilde derlenmeli ve her zaman güncel olmalıdır. Ekibiniz tarafından oluşturulan özellik dallarının bilinen iyi bir kod sürümünden başlaması için ana dalınızın bu özelliklere ihtiyacı vardır.

Ana dalınız için aşağıdakiler için bir dal ilkesi ayarlayın:

  • Kodu birleştirmek için çekme isteği gerekir. Bu yaklaşım, ana dala doğrudan göndermeyi önler ve önerilen değişikliklerin tartışılmasını sağlar.
  • Çekme isteği oluşturulduğunda gözden geçirenleri otomatik olarak ekler. Eklenen ekip üyeleri, çekme isteğindeki değişikliklerle ilgili kodu ve açıklamayı gözden geçirir.
  • Çekme isteğini tamamlamak için başarılı bir derleme gerekir. Ana dal ile birleştirilen kod temiz bir şekilde derlenmelidir.

İpucu

Çekme isteklerinizin derleme işlem hattı hızlı bir şekilde tamamlanmalıdır, bu nedenle gözden geçirme işlemine müdahale etmez.

Yayınları yönetme

Kodunuzun bir sürümündeki değişiklikleri koordine etmek ve dengelemek için yayın dallarını kullanın. Bu dal uzun ömürlüdür ve özellik dallarının aksine bir çekme isteğinde ana dal ile birleştirilir. İhtiyacınız olan sayıda yayın dalı oluşturun. Her etkin yayın dalının, desteklemeniz gereken kodun başka bir sürümünü temsil ettiğini unutmayın. Belirli bir sürümü desteklemeyi durdurmaya hazır olduğunuzda yayın dallarını kilitleyin.

Yayın dallarını kullanma

Yayınınıza veya sprint'in sonu gibi başka bir kilometre taşına yaklaştığınızda ana daldan bir yayın dalı oluşturun. Bu dala yayınla ilişkilendirerek net bir ad verin, örneğin sürüm/20.

Yayın dalındaki hataları düzeltmek için dallar oluşturun ve bunları bir çekme isteğinde yayın dalında yeniden birleştirin.

yayın dalı iş akışlarının görüntüsü

Bağlantı noktası ana dala geri döner

Düzeltmelerin hem yayın dalınıza hem de ana dalınıza indiğinden emin olun. Bir yaklaşım, sürüm dalında düzeltmeler yapmak ve ardından kodunuzda regresyonu önlemek için değişiklikleri ana dalınıza getirmektir. Bir diğer yaklaşım da (ve Azure DevOps ekibi tarafından kullanılan yaklaşım), ana hatta her zaman değişiklik yapmak ve ardından bunları yayın dalında taşımaktır. Yayın Akışı stratejimiz hakkında daha fazla bilgi edinebilirsiniz.

Bu konu başlığında, yayın dalında değişiklik yapmayı ve bunları ana hatta taşımayı ele alacağız. Hangi işlemelerin ana dala geri aktarıldığı üzerinde tam denetime sahip olmak için birleştirme yerine kiraz toplamayı kullanın. Yayın dalını ana dala birleştirmek, ana dalda istemediğiniz sürüme özgü değişiklikler getirebilir.

Ana dalı, yayın dalında yapılan bir değişiklikle şu adımlarla güncelleştirin:

  1. Değişiklikleri taşıması için ana daldan yeni bir özellik dalı oluşturun.
  2. Yayın dalındaki değişiklikleri yeni özellik dalınıza tek tek seçin.
  3. Özellik dalını ikinci bir çekme isteğinde ana dalla yeniden birleştirin.

Yayın dalı iş akışları güncelleştirildi.

Bu yayın dalı iş akışı, temel iş akışının yapı taşlarını korur: özellik dalları, çekme istekleri ve her zaman kodun en son sürümüne sahip güçlü bir ana dal.

Sürümler için etiketleri neden kullanmıyorsunuz?

Diğer dallanma iş akışları, belirli bir işlemeyi yayın olarak işaretlemek için Git etiketlerini kullanır. Etiketler, geçmişinizdeki noktaları önemli olarak işaretlemek için kullanışlıdır. Etiketler, yayınlarınız için dalları kullanıyorsanız iş akışınızda gerekli olmayan ek adımlar sağlar.

Etiketler korunur ve işlemelerinizden ayrı olarak gönderilir. Ekip üyeleri bir işlemeyi etiketlemeyi kolayca kaçırabilir ve daha sonra etiketi düzeltmek için geçmişe geri dönmeleri gerekir. Ayrıca etiketi göndermeye yönelik ek adımı unutarak bir sonraki geliştiricinin sürümü desteklerken kodun eski bir sürümünden çalışmasını sağlayabilirsiniz.

Yayın dalı stratejisi, yayınları işlemek için temel özellik dalı iş akışını genişletir. Ekibinizin, bağlantı noktası değişikliklerini tek tek seçme dışında herhangi bir yeni sürüm denetimi işlemini benimsemesi gerekmez.

Dağıtımları yönetme

Kodunuzun birden çok dağıtımını, birden çok sürümü işlediğiniz şekilde işleyebilirsiniz. Dağıtım/performans testi gibi net bir adlandırma kuralı oluşturun ve ortam dallarını yayın dalları gibi değerlendirin. Ekibiniz, dağıtım dallarını ana dalınızın koduyla güncelleştirme işlemini kabul etmelidir. Dağıtım dalında ana dala geri dönerek tek tek hata düzeltmeleri seçin. Bir yayın dalından değişiklikleri taşımayla aynı adımları kullanın.

Bu önerinin bir istisnası, sürekli dağıtım biçimi kullanıyor olmanızdır. Ana dalınızdaki derlemeleri dağıtım hedeflerinize yükseltmek için sürekli dağıtımla çalışırken Azure Pipelines'ı kullanın.