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.
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.
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.
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
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
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