Jon Purdy'nin doğru fikri var. git flow
bu dalların fiili yönetimini de kolaylaştırır ve şube yönetimi, taşınmak için bir argümandır git
.
Temel bakış açısıyla başlayalım git
, çünkü siz perspektiften geliyorsunuz . Aşağıdakileri göz önünde bulundurun :svn
git
git
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
Yukarıda, sen şube master
için develop
(ile gösterilir \
) ve dal develop
bir karşı feature
dalı. Bu dalları /
, -
bir dal boyunca taahhütler ( ) ile birlikte (ile gösterilir ) birleştiririz . (Eğer bir taahhüt yoksa ancak birleşme sağa giden yoldur .
, bir sonrakinin -
bir sonraki taahhüdün olduğunu gösteren göstergeler vardır ).
Yeterince kolay. Ana sürümümüzde bir düzeltme varsa ne olur?
master--...............-.....-................-...........-.........-
\ / / / \ /| /
\ / / / -hotfix-- V /
---develop---------............../..............-...----
\ / \ V /
--feature--- --feature2...----
Yukarıda, develop
dallı master
. Keşfedilen hata master
, dallanma master
, sabitleme ve tekrar bir araya gelme ile giderildi master
. Sonra birleşti master
içine develop
ve sonra develop
içinefeature2
gelen yeni kodu haddelenmiş olan hotfix
bu kola.
Eğer birleştirdiğinizde feature2
geri develop
, tarihçesi içerir develop
ile hotfix
. Aynı şekilde, develop
birleştirilir feature2
yeni kodla master
böylece birleştirme develop
geri master
o dayanıyor gibi ki taahhüt üzerine, aksamadan olur master
o zaman-gibi gelen kollara olsaydı en master
o noktada.
İşte bunu yapmanın başka bir yolu.
master--..........-........-
\ /\ /
---1.0-- --1.1--
Kişisel 1,0 bültenleri tagged- olsun 1.0.1
, 1.0.2
, 1.0.3
ve benzeri.
Şimdi burada bir numara: 1.0'da bir hata buldunuz ve 1.1, 1.2 ve 1.3'ü etkiliyor. Ne yaparsın?
En son veya en erken sürdürülen sürümünüzü alırsınız ve düzeltin. Sonra yeni birleştirmek hotfix
içine dalını 1.3
içine -ve 1.2
, 1.1
ve 1.0
. Bakım sürümü dallarının her birinden dallanma; birleştirmezseniz 1.0
içine master
veya birleştirme master
geri içine 1.0
. Bir hotfix
dalı alın ve tüm sürüm dallarınızla birleştirin. Çatışma varsa, size söyleyecektir; değişikliklerin doğru olduğundan emin olmak için kodunuzu inceleyin ( git diff
arkadaşınızdır).
Şimdi bu değişiklik her yere uygulandı. Soy, dallanmış, ama sorun değil. Bu gelişigüzel değil. 1.3
Kafayı 1.3.17 olarak etiketleyin, ilerleyen her özelliğe dallayın 1.3
ve ilerleyin.
git flow
Uzatma sizin için bu bakım, özelliği ve düzeltme dalları yönetmenize yardımcı olur. İş akışını azalttığınızda, bu önemsizdir ve kaynak kodu yönetimi dışında büyük miktarda sorun çıkarır.
Bunu programlama takımlarında gördüm, ancak bunu kendim de bir programcı olarak çok fazla yapmadım, bu yüzden hala günlük iş akışını kendimden geçiriyorum.
git
? Bu,git
etiketlenmeden kalmaya devam edeceğinden, hangi sözleşmelerin sorunları veya test hataları oluşturduğunu gerçekten netleştirmesinin avantajını sağlayacaktır .