GitFlow: в чем разница между release и master ветками?
Я только что взглянул на эту шпаргалку gitflow. Я не понимаю ветку release
.
release
и master
?2 ответа:
Разница заключается в целях и процессе. Ветвь
release
обычно создается, когда вы готовитесь к предстоящему выпуску. Когда все ваши ветвиfeature
, которые должны быть выпущены, уже объединены в ветвьdevelop
, вы создаете ветвьrelease
от ветвиdevelop
и фиксируете в ней только исправления ошибок или некоторые изменения конфигурации. Другими словами, вы пытаетесь сделать его настолько стабильным, насколько это возможно. Когда ветвьrelease
достаточно стабильна, вы объединяете ее обратно в ветвиdevelop
иmaster
. То назначение ветвиmaster
- всегда иметь последнюю стабильную версию проекта, которую можно развернуть в рабочей среде. Вы никогда не делаете коммит непосредственно на главную ветвь, только сливаетесь с ней из ветвейrelease
илиhotfix
. Также можно настроить инструменты CI/CD для развертывания в производство на любом обновлении в веткеmaster
.
Как только все функции, которые вы хотите иметь в своем релизе, находятся в разработке, вместо "блокировки" разработки для любого нового коммита, вы создаете ветку relase, которая будет содержать все функции, ожидаемые в вашем следующем релизе (а не в master, так как весь ваш релиз должен быть протестирован и, вероятно, будет иметь некоторые исправления...).
- в этой ветке у вас есть только исправления ошибок, документация и т. д... но никакой новой функции
- Ваша ветвь разработки не заблокирована, поэтому новые функции для следующей ветви релиз все еще можно запустить/нажать на разработку и тестирование.
Ветвь release идеально подходит для развертывания в среде staging / pre-prod и позволяет QA протестировать ваш релиз.- Как только release branch станет стабильным, вы можете объединить его в master и перейти к prod. Мастер всегда должен быть стабильным и устойчивым (если вы не делаете исправления).
Вы можете посмотреть на эти ссылки для дальнейшего пояснения:
Https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow http://nvie.com/posts/a-successful-git-branching-model/#feature-branches