Git akışı - başka bir özellik dalından özellik dalı oluşturma


86

Bir süredir kullanıyorum git flow. Belirli bir kullanım durumu hakkında bilgi edinmeyi merak ediyorum.

Projelerimden biri için yeni bir web sitesi özelliği için biletim var. Bu bilet birçok alt göreve bağlıdır. Ana bilet için bir özellik dalı oluşturmak ve ardından her alt görev için üst özellik dalından bir özellik dalı oluşturmak istiyorum.

Diyelim ki bir PROJ-500 biletim var ve bunun için bir özellik dalı oluşturuyorum

git flow feature start PROJ-500

Sonra bilet entegre etmek istiyorum PROJ-501yoluyla PROJ-515INTO PROJ-500içine her şeyi entegre etmeden önce develop. Benim gibi bir şey yapmanın bir yolu var mı

git flow feature start PROJ-511 -b PROJ-500

Daha sonra zamanla bu alt görevler tamamlanır ve özellikleri bittiğinde dal ile birleştirilir PROJ-500.

git flow feature finish PROJ-511

Birleştirmeyi öngören Yukarıdaki komut PROJ-511içinePROJ-500

Ve tüm alt görevler tamamlandıktan sonra PROJ-500tamamlanacak ve ile birleştirilecektir develop.

Bu şekilde yeni web sitesi özelliği, parça parça yerine tek bir birim olarak geliştirilmek üzere entegre edilir.


Bu yapmaz mı? git flow feature start PROJ-511 PROJ-500? Yorumda DerekS'in cevabına gönderdiğiniz bağlantı olması gerektiğini gösteriyor.
Paul Hicks

Yanıtlar:


120

Şununla bir alt özellik dalı oluşturabilirsiniz:

git flow feature start PROJ-511 feature/PROJ-500

Ancak dalı ana özellik dalına geri birleştirmek için GitFlow aracını kullanamazsınız çünkü bunu yaparsanız

git flow feature finish PROJ-511

özellik, şeklinde birleştirilecek develop. Ergo alt özellikleri desteklenmiyor , bunu manuel olarak yapmanız gerekiyor.

Alternatifler: Gereksinim yeni değil. Bir yoktur açık konu yanısıra çatal projesi dışındaki kola bitirme özellikleri desteklemek için iddia develop. Ayrıca bu özelliğin uygulanmasına sahip bir çekme isteği buldum . Bu değişikliği denemek ve ondan memnun olup olmadığınızı görmek isteyebilirsiniz.


Güncelleme 2019-12-13: Kullanıcı Matěj Kříž'in yorumunda az önce bahsettiği gibi, Tony Chemit kullanıcısı benimkinden birkaç ay sonra burada bir cevap yazdı ve orijinal gitflow ürününe alternatif olarak gitflow-avh'a işaret etti . Yukarıda gösterilen sözdizimi ile kutudan çıkan alt özellikleri destekler. Birkaç yıl geçti ve bugünlerde AVH sürümü Windows için Git'in normal kurulumunun bir parçası, bunu yerel kutumda doğruladım ve alt özellik seçeneğini test ettim. Yani Windows kullanıcıları için, Git kurulumundan hemen sonra çalışır.


1
@pymarco: Cevabı kabul ettiğiniz için teşekkürler. Yine de merak ediyorum: Alternatiflerden herhangi birini denediniz mi? Eğer öyleyse, hangisi ve sonuç ne oldu? Beklendiği gibi çalışıyor mu? Belki diğer okuyucular deneyimlerinizden bir şeyler öğrenebilir. :-)
kriegaex

Üzgünüm ama buna geri dönecek vaktim olmadı. Bir noktada deneyeceğim.
pymarco

3
Neden olumsuz oy? Olumsuz oylar, hiçbir araştırma çabası veya bilgi belirtisi göstermeyen kötü yazılmış, özensiz yanıtlar için kullanılmalıdır. Her neyse, teşekkürler.
kriegaex

Gitflow-avh sürümünü kullanıyorsanız , stackoverflow.com/a/29353800/472611 @ tony-chemit yanıtına bakın
Matěj Kříž


12

Daha önce de belirtildiği gibi, herhangi bir temel dalı kullanarak yeni bir özelliği başlatabiliriz.

git flow feature start PROJ-511 feature/PROJ-500

Ve alt özelliği bitirmek için git akış yapılandırmasını geçici olarak değiştirip özellik şubemizi kullanabiliriz develop:

git flow config set develop feature/PROJ-500 && git flow feature finish PROJ-511

Bu şekilde, git flow tüm komutları ve mantıklı kontrolleri çalıştırır. Son olarak, yapılandırmayı geri yüklemek için çalıştırabiliriz

git flow config set develop develop 

9

Güncelleme (5 Kasım 2020): Buradaki yeni cevapta belirtildiği gibi , bu, orijinal git akışının yerini alan gitflow-avh ile mümkündür.

===================

Orijinal Cevap:

Git akışında bunun için bir yöntem olduğunu sanmıyorum, ancak sadece git ile oldukça basit.

git checkout PROJ-500
git checkout -b PROJ-511
...do your PROJ-511 work...
git checkout PROJ-500
git merge PROJ-511
git branch -d PROJ-511

2
Cevap verdiğin için teşekkürler Derek. Evet, bu iş akışını takip edebilirim. Ancak git flow, alt özellik geliştirme için kullanmayı tercih ettiğim bir dizi komutu ve mantıklı kontrolü kapsıyor. Örneğin, git-flow-feature bağlantısı - github.com/nvie/gitflow/blob/develop/git-flow-feature
pymarco
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.