Git:如何修改分支以使其完全反映另一个分支

时间:2012-11-20 13:27:07

标签: git

我们希望将所有生产版本放在一个分支上。因此,当我们准备好RC时,我们希望将该分支与我们的开发分支保持同步,进行RC构建并应用修补程序,直到我们很高兴发布该版本。在发生这种情况时,我们团队的其他成员将继续在我们的开发分支上工作。

诀窍是,我们不想将我们的dev分支中的更改合并到此发行版分支中,我们希望它只是dev分支的精确副本 - 所以基本上忽略了之前发生的任何修补程序/等工作在发布分支上,因为那些将被拉入dev分支。其中一个原因是我们使用了很多不能很好地合并的二进制文件,另一个原因是我们的dev分支将经过更严格的测试,替换会更加安全。

最后的细节是我们确实希望在版本分支中仍然有旧的提交和标记,以防我们需要修复旧版本(我们会为此分支)。

如果我们找不到匹配的解决方案,我们的替代方案是每个版本都有一个分支,但这看起来很混乱。

2 个答案:

答案 0 :(得分:0)

我前一段时间开发了this script来完成你所描述的几乎所有的事情。要使用它,请检查发布分支,然后运行此脚本,提供要合并的开发分支的名称。它将创建一个记录这两个分支的合并的新提交,但树将完全按照其名称作为参数提供的分支。

我实际上并没有最终将其用于实际部署,因此它尚未在现实​​世界中进行测试,仅在开发情况下进行测试。

答案 1 :(得分:0)

一种解决方案是简单地将您的prod分支重置为下一次RC提交 但这将失去所述产品分支的历史。

另一个解决方案是merge --theirs:所有选项都列在" git command for making one branch like another"。中 qqx script使用this answer中提到的提交树。