Podążając za git-flow jak należy poradzić sobie z poprawką wcześniejszego wydania?

Jeśli spróbujesz postępować zgodnie z modelem rozgałęzień git-flow, udokumentowanym tutaj i za pomocą narzędzi tutaj, Jak powinieneś poradzić sobie z tą sytuacją:

Dokonałeś wydania 1.0 i Wydania 2.0. Następnie musisz zrobić poprawkę dla 1.0. Tworzysz gałąź poprawek z tagu 1.0 i wdrażasz tam poprawkę. Ale co wtedy?

Normalnie można by połączyć się z master i umieścić tam znacznik wydania 1.1. Ale nie można połączyć 1.1 do punktu po 2.0 na master.

I guess you może umieścić znacznik release na gałęzi poprawek, ale to utworzyłoby stałą gałąź obok master, która zawierałaby znacznik release. Czy to właściwa droga?

Author: Klas Mellbourn, 2013-05-05

3 answers

Wydaje się, że w git flow istnieje koncepcja gałęzi "support". Jest to używane do dodania poprawki do wcześniejszej wersji.

Ten wątek zawiera więcej informacji , z poniższymi przykładami:

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

... zrób poprawkę, to:

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

Lub używając komend git flow

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

... wprowadź wtedy zmiany:

git flow hotfix finish 6.0.1
 53
Author: Klas Mellbourn,
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-10-10 09:20:58

Ciekawe pytanie! Połączony przepływ zakłada, że master może śledzić produkcję. To działa tylko wtedy, gdy wersje produkcyjne są ściśle zwiększane. Zazwyczaj dotyczy to strony internetowej, która ma tylko jedną wersję produkcyjną.

Jeśli musisz utrzymywać wiele wersji produkcyjnych, jedna gałąź do śledzenia produkcji nie wystarczy. Rozwiązaniem nie jest użycie master do śledzenia produkcji. Zamiast tego użyj gałęzi takich jak release1, release2, itd.

W tym podejściu możesz nawet nie potrzebować oddział hotfix. Możesz rozwiązać problem na gałęzi release1. Gdy poprawka jest wystarczająco dobra, Utwórz znacznik release1.1 na gałęzi release1.

 27
Author: Andomar,
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
2013-05-05 16:16:14

Git-flow zakłada, że obsługujesz tylko jedną linię release na raz, wygodnie śledzoną przez master. Jeśli utrzymujesz więcej niż 1, będziesz musiał zmodyfikować proces git-flow tak, aby miał wiele trackerów Twoich oddzielnych wydań, które wspierasz (master-1, master-2). Możesz nadal używać programu master do śledzenia najnowszej linii wydania, oprócz lub zamiast określonego trackera dla najnowszej linii wydania (master zamiast master-2).

Niestety, wszelkie narzędzia git-flow, których używasz, prawdopodobnie będą musiały zostać zmodyfikowane, ale mam nadzieję, że znasz na tyle proces git-flow, aby obsłużyć ten konkretny przypadek bezpośrednio za pomocą komend git.

 6
Author: Bert F,
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
2013-05-05 18:35:28