我的一小组开发人员创建并维护与公司核心产品的几个不同版本的接口。我们的核心产品的不同版本大多相似,但有一些差异要求我们将代码保存在每个版本的单独分支中。一切都在同一个存储库中。
我们最近需要切换到Git,并且正在尝试确定何时需要对所有分支机构进行相同更改的最佳工作流程。到目前为止,我们一直依赖Cherry Pick进行每次提交。这很麻烦,必须有更好的方法。
以下是我们正在做的事情的一个例子:
V1 Master: ... (A1)--(B1)--(C1)---------(M)
\ /
V1 Feature: (D)----(E)
/
V2 Master: ... (A2)--(B2)--(C2) <--?
在将我们的V1功能合并到V1 master之前,我们重新定位到V1 master。这很简单,因为V1 Feature已经脱离了V1 Master。但是,现在我们希望将相同的D和E提交应用于V2 Master。分支很相似,这些提交不应该引起冲突。现在我们只是樱桃选择它们,并按顺序。
我一直在寻找,我无法找到解决这个问题的最佳方法,因为Cherry Pick不是正确的方法。
答案 0 :(得分:1)
注意:您的架构没有说明rebase,而是合并。
采摘樱桃适用于multiple commits in one command 这是一个很好的解决方案,前提是您从中采摘樱桃(masterV1)的分支永远不会合并到樱桃采摘目的地分支(masterv2)
这是因为挑选 duplicates a commit 而且你需要确保你正在挑选的提交有no functional dependencies基于之前的提交(源代码分支)。