Поскольку web4
включает все изменения для других сайтов, я бы структурировал репо следующим образом:
- Одна
master
ветвь как обычно - Одна
develop
веткас master
как обычно web4_master
- это ветвь с master
web4_develop
- это ветвь с web4_master
Если функциядля всех сайтов, то работа ведется в функциональной ветке от develop
как "нормальная" git-flow
.В конце концов, это будет готово к выпуску и объединено в master
.
Если функция предназначена только для web4
, то работа выполняется в ветви функций из web4_develop
и в конечном итоге объединяется в web4_master
.
По сути, происходит два git-flow
- один для всех сайтов и один для web4
определенных вещей.
Последний фрагмент:
В процессе выпуска для всех сайтов (или в тех случаях, когда это наиболее целесообразно для вас), web4
необходимо получить последние выпущенные изменения.
- Повторите
web4_master
на master
.Скорее всего, здесь будут конфликты, поэтому разрешайте их по мере необходимости - Перебазируйте
web4_develop
на флаг web4_master. This will NOT be a standard rebase and will need to make use of the
- на`, чтобы избежать дублирования коммитов.См. this для подробного объяснения - Повторите шаг 2 для любых
web4
ветвей выполняемых функций для web4_develop
.
По сути, этообрабатывая дерево web4
как ветку длинных объектов с master
.
Я не рекомендовал бы это, если есть существенные изменения от функций "всех сайтов", или если изменения очень распространены, так как разрешение конфликта станет раздражающим.
В этом случае я бы порекомендовал решение, которое вы использовали для ручного слияния изменений в двух корневых ветвях.
Возможно также, что этот подход имеет смысл / проще при использовании стратегии слияния, но этоне мое предпочтение чему-то подобному.