大约半年前,一位开发人员搞砸了,并将一个他不应该的分支(我们的 alpha 测试分支)合并到 master 中。我们通过恢复合并很快解决了这个问题。
快进 6 个月了,今天我试图合并那个错误合并中落在 master 上的分支之一,但 git 说我不能。该分支的更改不在 master 上,但 git 不允许合并。
有没有办法强制合并?
该分支的更改不在 master 上
该分支的“更改”不在 上master,因为恢复合并提交会反转这些更改。但该分支的提交已在master. 恢复合并提交对此没有任何作用;它没有改变拓扑:
A -- B -- C -- D -- M -- Mrevert -- E ... (master)
\ /
X -- Y -- Z
Run Code Online (Sandbox Code Playgroud)
你有看到?X、Y 和 Z仍处于打开状态master。所以它们永远不能再次合并master。那趟火车已经离开车站了。
您可以做的就是将 X、Y 和 Z 挑选到一个新分支中并将其合并。这是因为cherry pick 所做的新提交与已合并的提交不同。(或者,正如 Romain Valeri 所建议的那样,只需创建一个包含可还原还原的提交的分支,然后合并该分支。)
有关更多信息,请参阅(始终查看)Linus Torvald 自己对这种情况的解释以及您的选择:
https://github.com/git/git/blob/master/Documentation/howto/revert-a-faulty-merge.txt
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |