Git-flow'un ardından önceki bir sürümün düzeltmesini nasıl yapmalısınız?


101

Burada ve burada araçlarla belgelenen git-flow dallanma modelini izlemeye çalışırsanız , bu durumu nasıl ele almalısınız:

1.0 sürümü ve 2.0 sürümü yaptınız. Daha sonra 1.0 için bir düzeltme yapmanız gerekir. 1.0 etiketinden bir düzeltme dalı oluşturursunuz ve düzeltmeyi orada uygularsınız. Peki sonra ne olacak?

Normalde ustalaşmak için birleşir ve 1.1 sürüm etiketini oraya koyarsınız. Ancak, 1.1'i ana bilgisayarda 2.0'dan sonraki bir noktaya birleştiremezsiniz.

Sanırım sürüm etiketini düzeltme dalına koyabilirsiniz, ancak bu, ana birimin yanında bir sürüm etiketi içeren kalıcı bir dal oluşturacaktır. Doğru yol bu mu?


Git-akışının olası kopyası ve birden çok paralel sürüm dallı master [diğer soru daha yeni olsa da, daha yararlı yanıtları var, bu yüzden bu soruyu yinelenen olarak işaretledim]
danio

Yanıtlar:


74

Görünüşe göre git akışında bir "destek" dalı kavramı var. Bu, önceki bir sürüme bir düzeltme eklemek için kullanılır.

Bu ileti dizisi, aşağıdaki örneklerle daha fazla bilgi içerir :

git checkout 6.0
git checkout -b support/6.x
git checkout -b hotfix/6.0.1

... düzeltmenizi yapın, sonra:

git checkout support/6.x
git merge hotfix/6.0.1
git branch -d hotfix/6.0.1
git tag 6.0.1

veya git flowkomut kullanarak

git flow support start 6.x 6.0
git flow hotfix start 6.0.1 support/6.x

... sonra değişiklik yapın:

git flow hotfix finish 6.0.1

? bu destek şubelerini saklayın veya bir süre sonra
Evan Hu

@EvanHu, tabii ki bir yerde üretimde bu şubeye sahip olduğunuz sürece onları saklayın. Bundan sonra konu tarihsel bir kayıt meselesidir. Tekrarlanmaları durumunda düzeltmelerin nasıl düzeltildiğini bilmek isteyebilirsiniz.
Klas Mellbourn

Biri düzeltmede bir sürüm yapmalı, değil mi? Bunu nasıl yapabiliriz?
Ravindranath Akila

33

İlginç soru! Bağladığınız akış, ana yöneticinin üretimi izleyebileceğini varsayar. Bu, yalnızca üretim sürümleri kesinlikle artıyorsa işe yarar. Bu genellikle yalnızca bir üretim sürümü olan bir web sitesi için geçerlidir.

Birden fazla üretim sürümünü sürdürmeniz gerekiyorsa, üretimi izlemek için bir şube yeterli değildir. Çözüm, üretimi izlemek için master kullanmak değildir. Bunun yerine, kullanım dalları gibi release1, release2vb

Bu yaklaşımda, bir düzeltme dalına bile ihtiyacınız olmayabilir. Sorunu release1şubede çözebilirsiniz . Düzeltme yeterince iyi olduğunda, dalda bir release1.1etiket oluşturun release1.


Git-flow'u, sürüm dallarında yayın etiketlerini ayarlamak için değiştirebilirsiniz. Bu oldukça büyük bir değişiklik. Mevcut komut dosyalarını bozar. Ayrıca, o zaman usta ne içerir?
Klas Mellbourn

3
git-flowBirden üretim versiyonlarını desteklemek zorunda olmadığını kalıp uygun değildir. Bu cevapta önerilen iş akışında, master hiç kullanılmıyor. Geliştirme dalı yöneticisine isim verebilirsiniz, sonuçta bu sadece bir isimdir.
Andomar

GitFlow, birden fazla üretim sürümünün izlenmesini destekler: gitversion.readthedocs.io/en/latest/git-branching-strategies/…
Andre L

7

git-flow, bir seferde yalnızca bir sürüm satırını desteklediğinizi ve ana bilgisayar tarafından rahatlıkla izlendiğini varsayar. 1'den fazla bakım yapıyorsanız, desteklediğiniz ayrı sürümlerinizin (ana-1, ana-2) birden çok izleyicisine sahip olmak için git-akış sürecini değiştirmeniz gerekecektir. En son sürüm satırı için belirli bir izleyiciye ek olarak veya onun yerine en son sürüm satırını izlemek için ana kopyayı kullanmaya devam edebilirsiniz (master-2 yerine master).

Ne yazık ki, kullanıyor olabileceğiniz herhangi bir git-flow aracının muhtemelen değiştirilmesi gerekecektir, ancak umarım git-flow sürecine bu özel durumu doğrudan git komutlarıyla ele almak için yeterince aşinasınızdır.


git flowSüreci değiştirirseniz, o zaman farklı bir şey olacaktır. Bazı modellerin düzeltilmesi gerekiyorsa (sadece genişletilmemelidir), yazarının belirttiği kadar başarılıdır. Lütfen tartıştığımız konuya verdiğim cevaba bakın.
Victor Yarema

0

git config --add gitflow.multi-hotfix true Bu komut benim için çalışıyor gibi görünüyor!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.