2015-08-31 24 views
6

Bu, Git-flow and master with multiple parallel release-branches ve What's best way to work with git on multiple master branch? numaralı iş parçacığına benzer olsa da, tam olarak aynı değildir ... Bunu daha benzer buldum: Multiple projects with same GIT master, ancak özel kullanım durumumu tartışmak istiyorum ...Birden çok ana dal ile Gitflow

Çalıştığım şirket, Git iş akışımız için politikalar ve prosedürler oluşturma sürecindedir. "Gitflow" modelini, http://nvie.com/posts/a-successful-git-branching-model/ veya https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow numaralı makalede açıklandığı gibi kullanmak istiyoruz ve genellikle konuyla ilgili birçok tartışmada başvuruyoruz.

Belgelenmiş bir çözümü bulamadığımız bir kullanım durumumuz var. Projeniz birden fazla nihai ürün üretmek için kullanılıyorsa ne olur? Bu nedenle ana şube, "tek bir ürün gibi" serbest bırakma noktalarını "temsil edemez. Görünüşe göre belki de alternatif dallar ustadan isteniyor mu? Yani çoklu paralel açma kolları? Örneğin, proje farklı kaplamalar, tatlar veya varyasyonlara sahip olabilecek bir şeye belkemiği veya motoru olarak davranıyorsa, ancak sonuçta elde edilen nihai ürünlerin her birini tek bir depoda saklamak isterse ne olur?

Benim özel senaryomda, bir Linux sunucusunda çalışan bir programım var, ancak yerel bir Windows uygulaması olarak da dağıtılıyor. Bu farklı versiyonlarda, bir veya daha fazla sürümde yer alan veya bulunmayabilen projenin büyük parçaları vardır. Örnek olarak, sunucu üzerinde repo sadece sunucu için yer alması gerekmeyen, aksi takdirde var olmayacakları yerel dağıtım için dahil edilmesi gereken kütüphaneler vardır. Repoya güncellemeleri belirli sürüm noktalarında sunucuya çekmek istiyorum ancak oraya ait olmayan parçaları atlamak istiyorum.

Ana bölümden, bir "Sunucu Yayını" ve "Yerel Sürüm" dalı oluşturur muyum?

Geliştirme şubesi (ve özellikleri) nereden geliyor? Her biri kendi sürümünden çıkan çoklu geliştirme dallarını istemiyorum, çünkü kod geliştirmeleri her ikisine de% 99 uygulanabilir. Tek bir dev dalı bir ve daha sonra diğer sürümde birleştirmem gerekiyor mu?

cevap

4

Kodun% 99'u iki ürün arasında paylaşılıyorsa, aynı depoyu kolayca paylaşabilirsiniz. İki ürün aynı serbest bırakma döngüsünde olduğu sürece tek bir sürüm/geliştirme/master dalına sahip olabilirsiniz, ör. 2.0 sürümü aynı zamanda gönderilir.

Ana bölümden, bir "Sunucu Yayımı" ve "Yerel Sürüm" dalı oluşturur muyum?

Gitflow'da, siz aslında gelişmeye başlayan bir yayın ortaya çıkıyor! Ancak, farklı sürüm döngülerinde olmaları durumunda, ürün başına bir yayınlama dalı oluşturmanızı engelleyen hiçbir şey yoktur. Daha sonra, serbest bırakma dallarını, kendi zamanlarında yapıldıkları zaman, gelişmekte olan ve ana dallara birleştirebilirsiniz. Buradaki tek şey, ana dalda iki farklı etiket çeşidine sahip olmanızın gerekmesidir, böylece her ürünün serbest bırakma döngüsünde nerede olduğunu görebilirsiniz. Veya etiketleri aynı biçimde saklamak için, ilgili ürün için bir özellik tamamlandığında sırasıyla birleştireceğiniz iki ana dal (ürün başına bir tane) olabilir.

+0

Katılıyorum. Kod daha fazla veya daha az özdeşse, bir depoya sahip olmanız ve sadece bu depoya farklı dağıtım komut dosyaları/araçları (ör. "Karıncalar) eklemesi yeterlidir. Git-Flow burada iyi çalışmalı. – mstrap

+0

Teşekkürler mvd. Bu yardımcı olur. Ben hala bu dallanma modelini öğreniyorum ve açıkça ortadaki ikincil kaynaklara bakarak Gitflow'a yol gösterdim.Bunun yerine birincil kaynağa baktığımda, serbest bırakma dallarının nasıl geçici olduğunu ve gelişimin nasıl gerçekleştiğini gördüm. Serbest bırakmanın, asıl olarak ustaca gelen kalıcı bir orta adam olmasına rağmen, daha sonra dev, bununla geldi. Sonuç olarak, benim önerdiğim çözüm oldukça yığılmıştı. 2 ana dal fikrini beğendim. Gerçekten kastettiğim şeye benziyor. Şu an buradaki takımla görüşüyorum. Planınızı uygularsak bu cevabı hariç tutuyorum. – BuvinJ

+0

Serbest bırakma kollarının uzun ömürlü olduğu başka modeller de var. İş gelişmeye başlar, master'a birleştirilir (test edilmek için yeterince kararlı olduğu düşünüldüğünde) ve .0 etiketi etiketlendiğinde serbest bırakma dalı masterdan ayrılır. Popüler olduğu için git-flow ile gitmek zorunda gibi hissetme! Benzersiz bir durumunuz var ve sonunda şirketiniz için en uygun stratejiyi seçmelisiniz. – mvd

İlgili konular