代码之家  ›  专栏  ›  技术社区  ›  Yousef Altaf

Git:成功地将master与3.0版合并后,master仍然没有获得所有更新

git
  •  0
  • Yousef Altaf  · 技术社区  · 6 年前

    我有 master 一个分支叫 version-3.0 更改后 版本-3.0 并将其与 主人 我撤消合并并做了其他更改,然后再次合并。

    第二次合并成功后,我发现 主人 仍然不同,没有从 版本-3.0 分支。

    再次尝试合并时显示“已是最新的”。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jan Hudec    6 年前

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

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

    这是因为还原的版本是一个新版本,与原始更改没有任何形式上的关系,它在历史中比前面的合并更为新,因此具有优先权。

    我建议您花一些时间来了解三向合并算法是如何工作的,以及如何选择最近的共同祖先。这是很明显的一旦你这样做,但不容易在一个简短的职位描述。你可以让git通过询问 git merge-base master version-3.0 (或任何其他修订)并且您可以使用 gitk master..version-3.0 (从3.0版合并到master版时他们的一方)和 gitk version-3.0..master (我们这边)或者再加上其他两个版本。


    嗯,在不希望的合并之前,你可以在一个版本上重新定位,然后在这个版本上再次合并,但这是一种更高级的方法,并不适合 master 它的基础上还有很多其他分支。