Jon Purdy'nin doğru fikri var. git flowbu 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 :svngitgit
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
Yukarıda, sen şube masteriçin develop(ile gösterilir \) ve dal developbir karşı featuredalı. 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, developdallı master. Keşfedilen hata master, dallanma master, sabitleme ve tekrar bir araya gelme ile giderildi master. Sonra birleşti masteriçine developve sonra developiçinefeature2 gelen yeni kodu haddelenmiş olan hotfixbu kola.
Eğer birleştirdiğinizde feature2geri develop, tarihçesi içerir developile hotfix. Aynı şekilde, developbirleştirilir feature2yeni kodla masterböylece birleştirme developgeri mastero dayanıyor gibi ki taahhüt üzerine, aksamadan olur mastero zaman-gibi gelen kollara olsaydı en mastero 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.3ve 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 hotfixiçine dalını 1.3içine -ve 1.2, 1.1ve 1.0. Bakım sürümü dallarının her birinden dallanma; birleştirmezseniz 1.0içine masterveya birleştirme mastergeri içine 1.0. Bir hotfixdalı 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 diffarkadaşınızdır).
Şimdi bu değişiklik her yere uygulandı. Soy, dallanmış, ama sorun değil. Bu gelişigüzel değil. 1.3Kafayı 1.3.17 olarak etiketleyin, ilerleyen her özelliğe dallayın 1.3ve ilerleyin.
git flowUzatma 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,gitetiketlenmeden kalmaya devam edeceğinden, hangi sözleşmelerin sorunları veya test hataları oluşturduğunu gerçekten netleştirmesinin avantajını sağlayacaktır .