首页 > 解决方案 > Git:成功将master与3.0版合并后master仍然没有得到所有更新

问题描述

在进行更改并将其合并后,我master调用了一个分支,我撤消了合并并进行了其他更改,然后再次合并它。version-3.0version-3.0master

在第二次合并成功完成后,我发现master仍然不同并且没有从version-3.0分支获取更新。

再次尝试合并说“已经是最新的”。

标签: git

解决方案


我撤消了合并并进行了其他更改,然后再次合并。

如果您通过还原更改撤消了合并,则恢复更改的唯一方法是还原该还原。

这是因为恢复的版本是一个新版本,与原始更改没有任何正式关系,在历史上比之前的合并更近,因此具有优先权。

我建议您花一些时间了解三向合并算法的工作原理以及如何选择最近的共同祖先。一旦你这样做就很明显了,但在一篇简短的文章中并不容易描述。您可以通过询问(或任何其他修订对)让 git 向您展示合并基础,并且您可以使用(从版本 3.0 合并到主版本时的“他们的”一侧)和(“我们的” git merge-base master version-3.0)可视化任一侧的更改列表' 边)——或再次与任何其他两个修订版一起使用。gitk master..version-3.0gitk version-3.0..master


¹ 好吧,您可以在不需要的合并之前重新基于一个版本并在此基础上再次合并,但这是一种更高级的方法,并不真正适合master基于它的许多其他分支。


推荐阅读