Git - 对多个主分支进行更改
Git - Making Changes to Multiple Master Branches
我的开发人员小组创建和维护我们公司核心产品的几个不同版本的接口。我们核心产品的不同版本大多相似,但存在一些差异,这需要我们将代码保存在每个版本的单独分支中。一切都在同一个存储库中。
我们最近需要切换到 Git,并且正在尝试确定最佳工作流程,以便在我们需要对所有分支机构进行相同更改时使用。到目前为止,我们一直依赖 Cherry Pick 进行每次提交。很麻烦,必须有更好的方法。
这是我们正在做的一个例子:
V1 Master: ... (A1)--(B1)--(C1)---------(M)
\ /
V1 Feature: (D)----(E)
/
V2 Master: ... (A2)--(B2)--(C2) <--?
在将我们的 V1 功能合并到 V1 master 之前,我们 rebase 到 V1 master。这很简单,也很有意义,因为 V1 Feature 是从 V1 Master 分支出来的。但是,现在我们希望将相同的 D 和 E 提交应用到 V2 Master。这些分支非常相似,以至于这些提交不会引起冲突。现在我们只是按顺序逐个挑选它们。
我一直在四处寻找,但我想不出解决这个问题的最佳方法,因为 Cherry Pick 不是正确的方法。
注意:您的架构并未说明变基,而是合并。
multiple commits in one command 的樱桃采摘工作。
这是一个很好的解决方案,前提是您从中挑选樱桃 (masterV1) 的分支永远不会合并到挑选樱桃的目标分支 (masterv2)
那是因为cherry-pick duplicates a commit.
并且您需要确保您挑选的提交具有 no functional dependencies 基于之前的提交(源分支的)。
我的开发人员小组创建和维护我们公司核心产品的几个不同版本的接口。我们核心产品的不同版本大多相似,但存在一些差异,这需要我们将代码保存在每个版本的单独分支中。一切都在同一个存储库中。
我们最近需要切换到 Git,并且正在尝试确定最佳工作流程,以便在我们需要对所有分支机构进行相同更改时使用。到目前为止,我们一直依赖 Cherry Pick 进行每次提交。很麻烦,必须有更好的方法。
这是我们正在做的一个例子:
V1 Master: ... (A1)--(B1)--(C1)---------(M)
\ /
V1 Feature: (D)----(E)
/
V2 Master: ... (A2)--(B2)--(C2) <--?
在将我们的 V1 功能合并到 V1 master 之前,我们 rebase 到 V1 master。这很简单,也很有意义,因为 V1 Feature 是从 V1 Master 分支出来的。但是,现在我们希望将相同的 D 和 E 提交应用到 V2 Master。这些分支非常相似,以至于这些提交不会引起冲突。现在我们只是按顺序逐个挑选它们。
我一直在四处寻找,但我想不出解决这个问题的最佳方法,因为 Cherry Pick 不是正确的方法。
注意:您的架构并未说明变基,而是合并。
multiple commits in one command 的樱桃采摘工作。
这是一个很好的解决方案,前提是您从中挑选樱桃 (masterV1) 的分支永远不会合并到挑选樱桃的目标分支 (masterv2)
那是因为cherry-pick duplicates a commit.
并且您需要确保您挑选的提交具有 no functional dependencies 基于之前的提交(源分支的)。