Git:在成功将主机与3.0版合并后,主机仍然没有';我没有得到所有的更新
我有Git:在成功将主机与3.0版合并后,主机仍然没有';我没有得到所有的更新,git,Git,我有master和一个名为version-3.0的分支,在version-3.0上进行更改并将其与master合并后,我撤消合并并进行其他更改,然后再次合并 在第二次合并成功完成后,我发现主版本仍然不同,并且没有从version-3.0分支获得更新 再次尝试合并,并显示“已更新” 我撤消合并并进行其他更改,然后再次合并 如果您通过还原更改撤消了合并,则返回更改的唯一方法是还原该还原 这是因为还原版本是一个新版本,与原始更改没有任何正式关系,它在历史上比之前的合并更新,因此具有优先权 我建议您花一
master
和一个名为version-3.0
的分支,在version-3.0
上进行更改并将其与master
合并后,我撤消合并并进行其他更改,然后再次合并
在第二次合并成功完成后,我发现主版本仍然不同,并且没有从version-3.0
分支获得更新
再次尝试合并,并显示“已更新”
我撤消合并并进行其他更改,然后再次合并
如果您通过还原更改撤消了合并,则返回更改的唯一方法是还原该还原
这是因为还原版本是一个新版本,与原始更改没有任何正式关系,它在历史上比之前的合并更新,因此具有优先权
我建议您花一些时间了解三方合并算法是如何工作的,以及最近的共同祖先是如何被选择的。一旦你这样做了,这是很明显的,但不容易在一篇短文中描述。您可以通过询问git merge base master version-3.0
(或任何其他两个修订版)让git向您显示合并库,并且您可以使用gitk master..version-3.0
(从version-3.0合并到master时“他们的”侧)和gitk version-3.0..master查看任意一侧的更改列表(‘我们的’一方)-或者再加上其他两个版本
当然,您可以在不需要的合并之前重新设置版本的基础,然后在此基础上再次合并,但这是一种更高级的方法,并不真正适用于有许多其他分支基于它的master
。还原是一种提交,将更改作为新的提交撤消。如果您只是想像从未发生过一样撤消它,请使用reset。