Git flow-tworzenie gałęzi feature z innej gałęzi feature

Używam git flow już od jakiegoś czasu. Jestem ciekaw, aby dowiedzieć się o konkretnym przypadku użycia.

Dla jednego z moich projektów mam bilet na nową funkcjonalność strony internetowej. Ten bilet zależy od wielu podrzędnych zadań. Chciałbym utworzyć gałąź funkcji dla głównego paragonu, a następnie dla każdego zadania podrzędnego utworzyć gałąź funkcji poza nadrzędną gałęzią funkcji.

Załóżmy, że mam bilet PROJ-500 i tworzę dla niego gałąź funkcji

git flow feature start PROJ-500

Wtedy chcę Zintegruj bilety PROJ-501 przez PROJ-515 z PROJ-500 przed zintegrowaniem całości z develop. Czy jest dla mnie jakiś sposób na zrobienie czegoś takiego jak

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

Następnie te podzadania zostają zakończone, a po ich zakończeniu gałąź zostaje scalona w PROJ-500.

git flow feature finish PROJ-511

Powyższe polecenie połączy PROJ-511 w PROJ-500

I po zakończeniu wszystkich zadań podrzędnych PROJ-500 zostaną zakończone i połączone w develop.

W ten sposób nowa funkcja strony jest Zintegruj z rozwijaj jako pojedynczą jednostkę, a nie fragmentarycznie.

Author: pymarco, 2014-04-09

4 answers

Możesz utworzyć gałąź podrzędną za pomocą

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

Ale nie możesz użyć narzędzia GitFlow do scalenia gałęzi z powrotem do głównej gałęzi feature, ponieważ jeśli to zrobisz

git flow feature finish PROJ-511

Funkcja zostanie scalona w develop. Ergo sub-funkcje nie są obsługiwane , musisz to zrobić ręcznie.

Alternatywy: wymóg nie jest jednak nowy. Istnieje open issue, a także Fork project, który twierdzi, że obsługuje funkcje wykończeniowe do gałęzie inne niż develop. Znalazłem również pull request z implementacją tej funkcji. Możesz spróbować tej modyfikacji i sprawdzić, czy jesteś z niej zadowolony.

 85
Author: kriegaex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-09 09:44:43

Jak zrozumiałem, gitflow jest dość opuszczony.

Gitflow-avh zastępuje go i oferuje tę funkcję (zobacz https://github.com/petervanderdoes/gitflow#creating-featurereleasehotfixsupport-branches).

Po prostu próbuję i działa mi to dobrze.
git flow feature start PROJ-511 feature/PROJ-500
git flow feature finish PROJ-511

proj-511 został scalony w feature/PROJ-500.

 19
Author: Tony Chemit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-30 18:44:35

Nie wydaje mi się, aby w git flow istniała na to metoda, ale jest to dość proste.

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
 8
Author: Derek S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-08 21:55:35

Jak już wspomniano, możemy uruchomić nową funkcję używając dowolnej gałęzi bazowej z

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

I aby zakończyć sub-feature możemy tymczasowo zmienić konfigurację git flow, aby użyć naszej gałęzi feature zamiast develop:

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

W ten sposób, git flow uruchamia wszystkie polecenia i kontrole zdrowia psychicznego. Na koniec, aby przywrócić config, możemy uruchomić

git flow config set develop develop 
 7
Author: César,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-06 23:29:00