Gitflow зачем нам мастер
В gitflow все ветки релиза в конце концов
- слиться с мастером
- объединиться, чтобы развиваться
- мастер тегов
- удалить ветку релиза
но почему бы нам просто
- пометить ветку релиза
- объединиться, чтобы развиваться
- удалить ветку релиза
в случае исправления мы можем просто
- ветка последнего тега
- сделать исправление
- отметить эту ветку
- объединиться, чтобы развиваться
- удалить ветку исправлений
3 ответа
Вы почти описываете модель ветвления потока выпуска:
- Разработчики объединяются с общей ветвью магистрали (назовите ее разработкой или мастером)
- Когда вы будете готовы освободить ветку от основной линии (назовите ее release/r-1.2 и т. Д.)
- Когда вы обнаружите проблему с новым выпуском, создайте ветку исправлений (hotfix/fix-something)
- Объедините ваше исправление с основной, как с обычным разработчиком.
- Merge / cherry выберет исправление в вашей ветке релиза
- Ветвь релиза представляет производство, когда оно развернуто в этой среде
Нет окончательного слияния с производственной ветвью - это не нужно, поскольку ветвь выпуска - это то же самое.
Как только старая ветвь выпуска была заменена следующей, ее можно удалить, если она больше не требуется для целей аудита.
Это хорошо задокументировано командой VSTS: https://docs.microsoft.com/en-gb/azure/devops/devops-at-microsoft/release-flow
Позвольте мне попытаться выразить свое понимание здесь,
Соглашение об именах веток Git master, develop & release
были хорошо определены и приняты для синхронизации с универсально. Это не означает, что вам нужно следовать, вы можете определить, как вы хотите, и подтолкнуть своих клиентов и пользователей. Многие организации придерживаются универсальных соглашений об именах, чтобы избежать ненужной путаницы.
В Mercurial Многие следуют за именами веток default
вместо master
,
Определение в одну строку:
master : Ready Product (Public Available)
develop : Requirements/bugs/Improvements Implementation In Progress (Not recommended to use)
release : Preparing to `Ready Product` (Private or internal)
tag master : Stable Product with defined features.
Вы можете отослать Это Это Это для получения дополнительной информации
По главной причине, почему master
нужна ветка (develop
ветку заменить нельзя) в gitflow:
- Все версии на
master
ветвь должна быть достаточно стабильной, так как она используется для среды продукта. - В то время как для
develop
ветки, все разработчики могут продвигать свою работу напрямую, даже без проверок. Это означает,develop
ветка может быть "грязной", что приведет к обрушению производственной / жилой среды.