git - git flow 有两个主分支,有可能吗?
问题描述
我正在一个具有奇怪分支方案的项目中工作。假设这是一个包含几个网站的共享项目存储库(下面只是一个示例):
从上面的网站 web1、web2、web3 共享相同的功能,web4 与其他共享相同,并进行了一些更改。之前的团队结束了为 web1、web2、web3 和 web4 构建 web4_master 的 master 分支。这是分支的外观示例:
λ git branch
* web4_master
master
develop
我想在git-flow
这里使用正常分支方案(意味着只有一个主分支)的其余项目,但在这种情况下,我必须主分支,有时代码会转到 master 或 web4_master 或两者兼而有之。有没有办法通过使用来处理这个问题git-flow
?还是我必须与旧方式绑定,这意味着手动将更改合并到它们去的任何地方?
解决方案
由于web4
包括其他站点的所有更改,我将按如下方式构建 repo:
- 一个
master
分支正常 - 正常的一个
develop
分支master
web4_master
是一个分支master
web4_develop
是一个分支web4_master
如果某个功能适用于所有站点,则工作是在develop
类似 "normal"的功能分支中完成的git-flow
。最终,这将准备好发布并合并到master
.
如果一个特性只是为了web4
,那么工作是在一个特性分支中完成的web4_develop
,并最终合并到web4_master
.
本质上,发生了两种git-flow
情况——一种针对所有站点,一种针对web4
特定事物。
最后一块:
在所有站点的发布过程中(或对您最有意义的时候),web4
需要获取最新发布的更改。
- 重新定位
web4_master
到master
. 这里可能会有冲突,所以根据需要解决它们 web4_develop
重新定位到--onto`web4_master. This will NOT be a standard rebase and will need to make use of the
标志以避免重复提交。有关详细说明,请参阅此web4
对任何正在进行的功能分支重复步骤 2到web4_develop
。
本质上,这将web4
树视为来自master
.
如果“所有站点”功能发生重大变化,或者变化非常广泛,我不建议这样做,因为解决冲突会很烦人。
在那种情况下,我会推荐您手动将更改合并到两个根分支的解决方案。
这种方法也有可能是有意义的/使用合并策略更容易,但这不是我对这样的事情的偏好。
推荐阅读
- c++ - 传递外围对象以用作嵌入式系统中的类成员
- bash - 获取 xml2 以将另一个命令的输出作为文件而不是指定名称读取?
- javascript - AngularJS 无法加载 Bing 地图
- consensus - 为什么少于3m+1的将军不能对付m个叛徒?
- javascript - 垃圾收集器支持的“未定义”或“空”
- javascript - 在 Node.js/express 中安全地将对象传递给客户端
- r - 通过 RSelenium 单击按钮
- c# - 自定义 .NET Standard Nuget 包未正确安装
- javascript - ReactJS SocketIO setState 到 JSON 对象
- php - 如何计算具有相同值但不同id的行