Ten problem wskazuje, że:
Z mojego zrozumienia, umieszczenie znacznika w gałęzi release przed scaleniem (a nie w gałęzi master) jest w rzeczywistości słuszne, więc można to znaleźć za pomocą git opisz - tagi z gałęzi developerskiej. Zobacz # 374
podczas gdy inny post :
Dzisiaj przypadkowo zainstalowałem wersję 0.4.2 pre przez homebrew i byłem zdezorientowany sposobem tagowania w tej wersji. Wcześniej (wersja 0.4.1) znacznik był tworzony w gałęzi master, po scaleniu gałęzi wydania. Teraz wydaje się, że tag jest tworzony przy ostatnim zatwierdzeniu gałęzi wydania, co nie wydaje mi się dobrym pomysłem. Zwłaszcza jeśli masz system kompilacji, który opiera się na tagach git i tworzy wersję, jeśli HEAD jest zatwierdzonym tagiem i wersją programistyczną, jeśli jest to jeden z poniższych zatwierdzeń. Czy ktoś mógłby mi wyjaśnić logikę tej zmiany? A w odniesieniu do wersjonowania semantycznego nie uważałbym tego za bump wersji na poziomie łatek!
W naszym zespole przeprowadziliśmy i rozmawialiśmy na ten temat. Niektóre wskazują, że należy utworzyć znacznik z gałęzi master, podczas gdy inni wolą gałąź release. Zgodnie z obrazem gitflow:
wygląda na to, że tag jest umieszczony na wzorcu.
Odpowiedzi:
Po pierwsze, nie można oznaczać gałęzi, można tylko oznaczać zatwierdzenia.
Powinieneś oznaczyć zatwierdzenie, które faktycznie wypuszczasz. Taki jest sens zatwierdzania wersji. Jeśli masz problem ze swoim oprogramowaniem w jakimś środowisku (produkcyjnym lub innym), możesz śmiało powiedzieć, że problem został wprowadzony przez zatwierdzenie, z którego pochodzi ta wersja.
(Dlatego ludzie mówią o „odtwarzalnych kompilacjach”: aby mieć pewność, że proces ich wydania nie wprowadza nowych błędów, których nie było w ich środowisku podglądu / przemieszczania, i że jeśli mają błąd w produkcji, to samo plik binarny działa na ich komputerze, kiedy idą go debugować.)
Nie ma sensu oznaczać drugiego zielonego zatwierdzenia od dołu (zielone dziecko zatwierdzenia oznaczone „Tylko poprawki błędów!”) Jako „v1.0”, ponieważ nie wydaliście tego zatwierdzenia do produkcji. Zwolniłeś zatwierdzenie na master. Możesz nawet zobaczyć, że git flow oznaczył to jako „Tag 1.0”.
Pamiętaj, że tagi mają cel: łatwe znajdowanie zatwierdzeń. Zatwierdzasz tag jako „v1.0”, aby łatwo znaleźć rzecz wydaną jako wersja 1.0. Nie tagujesz go ze względu na to, że masz gdzieś w drzewie zatwierdzeń tag v1.0, niejasno w pobliżu zatwierdzenia, które faktycznie wydałeś.
Jeśli masz problemy ze znalezieniem tagów z gałęzi programistycznej, jest to zupełnie osobny problem. Napraw narzędzie, którego używasz do znajdowania tagów. Lub jeszcze lepiej: nie używaj git-flow. Na tym schemacie wygląda ładnie z powodu uroczych kolorowych kropek i ładnie ułożonych linii, ale w rzeczywistości wygląda jak szalona, brudna sieć kolorowych linii i kropek.
źródło
You should tag the commit you actually release
. Więc jeśli na przykład 20 zatwierdzeń, które muszą zostać zwolnione, znajdują się w gałęzi wydania, a gałąź ta jest scalona z wzorcem, utworzony zatwierdzenie scalania musi zostać otagowane, aby wiedzieć, co zostało wydane?branch:master