解决GIT中文件中的部分冲突

时间:2010-12-01 09:12:44

标签: git git-merge merge-conflict-resolution

我想讨论的情景是 我有一个合并存储库,它是共享存储库,开发人员可以在其中解决合并冲突。

  1. 单个文件中存在两个或更多合并冲突。
  2. 每个冲突都必须解决不同的用户。
  3. 每个开发人员cd进入此存储库以解决合并冲突。
  4. 假设foo.c有3次合并冲突
  5. 一个用户解决foo.c中的单个冲突,并保存在图形合并工具中
  6. 现在GIT认为这是“git add”,尽管文件的其他部分仍然存在冲突。然后,如果另一个开发人员执行“git mergetool foo.c”,它就不会弹出foo.c来解决冲突。

    是否有解决此问题的图形工具。 允许多个用户在同一文件中解决并保存冲突。

1 个答案:

答案 0 :(得分:0)

这种情况真的没有意义......

首先,如果存在冲突,那么该冲突仅存在于一个合并提交中,该合并提交尚不存在! (它仍然在用户的机器上,可能在索引中,但当然也不在本地树中)。

其他用户根本没有冲突,直到他们进行合并或变基。

假设您有三个用户执行完全相同的合并,无论原因是什么,因此它们具有相同的冲突。

让我们进一步假设他们,如你所说,他们每个人都有冲突,只有他们可以协调,然后他们应该在最新版本的代码上重新调整他们的工作,并协调过程中的任何冲突。

换句话说,您似乎描述的情况如下:(如果我错了,请纠正我):

  1. 我们有三个开发人员,查理,约翰和马特,他们都在主分公司工作,这是在提交aaaaaaa。
  2. 他们都在一个'不稳定'的分支上工作,这个分支位于提交bbbbbbbb,它与'master'不同。
  3. 他们所有人,同时,决定他们应该将'unstable'分支合并为'master',单独。
  4. 他们所有人,同时,意识到他们有他们无法调和的承诺。
  5. 理想情况下,在这种情况下应该做的是,任何知道如何进行合并的开发人员都应该合并“不稳定”。也许他们会选择一次合并一些提交,而不是直接合并两个头,或者他们可能会选择改变整个事情 - 无论如何,但只有一个开发人员需要这样做。

    The more frequently this is done, the easier the merge/rebase operation will be.
    

    其余的开发人员将能够使用合并提交。