我有一个 git 分支,dev
这正是我希望我的另一个 git 分支所在master
的位置。
master
有一些修补程序在未来比两者的共同祖先更远,所以这个命令链会产生复杂和愚蠢的合并冲突:
git checkout master
git merge dev # Complicated merge conflicts. Boo hiss.
我想做的是在 master 上进行一个新的提交,它的状态为 dev HEAD 。从那时起,事情可以以更理智的方式进行
例子:
dev: A ---> B ---> C ----> D
master: A ---> Y ---> Z ----> *
A是我的共同祖先。Y 和 Z 是相互冲突的修补程序更改,因此 D、A 和 Z 之间的三向合并是一团糟。
最后我想要这个结果:
- master 的 HEAD 包含与 dev 上的 HEAD 完全相同的代码
- 历史没有被重写,因为两个分支都被推送到远程
- 一个很好的提交消息,解释了这个合并提交