Gitflow зачем нам мастер

В gitflow все ветки релиза в конце концов

  1. слиться с мастером
  2. объединиться, чтобы развиваться
  3. мастер тегов
  4. удалить ветку релиза

но почему бы нам просто

  1. пометить ветку релиза
  2. объединиться, чтобы развиваться
  3. удалить ветку релиза

в случае исправления мы можем просто

  1. ветка последнего тега
  2. сделать исправление
  3. отметить эту ветку
  4. объединиться, чтобы развиваться
  5. удалить ветку исправлений

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 ветка может быть "грязной", что приведет к обрушению производственной / жилой среды.
Другие вопросы по тегам