Po pierwsze, przechodzimy do przejścia wszystkich naszych zespołów projektowych do korzystania z git i opracowujemy wytyczne dotyczące sposobu organizacji repozytoriów, tak aby niektóre oddziały mogły być monitorowane pod kątem ciągłej integracji i automatyczne wdrożenie na serwerach testowych. Obecnie rozwijane są dwa modele:
Duży wpływ na artykuł nvie.com na temat udanego rozgałęzienia z odgałęzieniem głównym reprezentującym najbardziej stabilny kod, gałęzią programistyczną dla najnowocześniejszego kodu oraz gałęzią integracji dla kodu gotową do testowania w ramach kontroli jakości.
Alternatywny model, w którym gałąź główna reprezentuje najnowszy kod rozwoju, gałąź integracji dla kodu gotowego do testowania w ramach kontroli jakości oraz gałąź produkcji dla kodu stabilnego, który jest gotowy do wdrożenia.
W tym momencie jest to częściowo kwestia semantyki w odniesieniu do tego, co reprezentuje gałąź master, ale czy aktywny rozwój w gałęzi master jest w rzeczywistości dobrą praktyką, czy to naprawdę nie jest tak istotne?
Odpowiedzi:
Jedyną prawdziwą cechą definiującą
master
gałąź jest to, że jest domyślna dla niektórych operacji. Ponadto nazwy oddziałów mają znaczenie tylko w określonym repozytorium. Mogę namaster
przykład wskazać na twojądevelopment
. Ponadtomaster
gałąź nie jest nawet wymagana, więc jeśli istnieje jakieś zamieszanie co do tego, która gałąź powinna być, radzę zwykle całkowicie ją pominąć.Jednak moim zdaniem najlepszym sposobem, aby to sobie wyobrazić, jest domyślna opcja wypychania. Zakłada się, że większość samouczków online, które przeczytali programiści. Dlatego sensowne jest posiadanie
master
gałęzi, do której najczęściej jest popychany. Niektórzy uważają go za nieskazitelną kopię, która jest nietykalna dla programistów, chyba że po ścisłej kontroli, ale użycie jej w ten sposób usuwa wiele przydatnych domyślnych ustawień git. Jeśli chcesz mieć taki nieskazitelny oddział, umieściłbym go w całkowicie oddzielnym repozytorium, do którego tylko niektóre osoby mogą pisać.źródło
Nie, nie jest wskazane, nawet na początku, zanim pójdziesz do kontroli jakości. Zgodnie z najlepszą praktyką wzór rozwoju powinien być spójny od początku do końca. Twoja gałąź główna powinna zaczynać się pusta, należy gałąź gałąź programistyczna rozpocząć i dodawać pliki, łączyć się z gałęzią integracji, a następnie z mistrzem.
Podczas gdy nikt nie może przejmować się podczas rozwoju tym, że gałąź master nie buduje, wcześnie wpada w złe nawyki. Mistrz powinien zawsze budować, a dla głównych wydań funkcji nie byłoby złym pomysłem zarchiwizowanie gałęzi głównych kompilacji, aby w razie potrzeby można było przywrócić stabilne punkty wydania.
źródło