2010-12-01 130 views
2

我想讨论的场景是 我有一个合并存储库,它是共享存储库,开发人员将在其中解决合并冲突问题。在GIT中解决文件冲突的一部分

  1. 单个文件中存在2个或多个合并冲突。
  2. 每个冲突都必须解决不同的用户。
  3. 每个开发人员都可以进入该存储库解决合并冲突。
  4. 让的说foo.c的有3个合并冲突
  5. 一个用户在foo.c的解决了一个单一的冲突,并保存在一个图形化的合并工具

现在GIT承认这是“混帐添加”虽然有在文件的其他部分仍然存在冲突。然后,如果另一个开发人员“git mergetool foo.c”,它不会弹出foo.c的冲突。

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

回答

0

这种情况并没有真正意义......

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

其他用户根本没有冲突,直到他们进行合并或重新绑定。

假设您确实有三位用户进行完全相同的合并,无论出于何种原因,因此他们有相同的冲突。

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

换句话说,你的情况似乎说明如下:(纠正我,如果我错了):

  1. 我们有三个开发者,查理,约翰和马特,谁都是关闭主分支,这是在提交aaaaaaa。
  2. 他们都在一个'不稳定'的分支上工作,这个分支在提交bbbbbbbb时与'主'分离。
  3. 他们全部,在同一时间,决定他们应该单独合并'不稳定'分支到'主'。
  4. 他们全部,在同一时间,意识到他们有承诺他们不能协调。

理想情况下,在这种情况下应该做什么,应该由任何知道如何进行合并的开发人员合并“不稳定”。也许他们会选择一次将几个提交合并,而不是直接合并这两个负责人,或者他们可能选择重新整理所有内容 - 不管怎样,但只有一个开发人员需要这样做。

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

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

+0

嗯,这不是什么想法....要更好地解释。 我试图合并2裸仓库,而不是合并到实际数据存储库中的分支。由于没有工作目录,因此合并2个裸存储库是不可能的,所以我从1裸副本(A)创建了一个名为merge_A的克隆,并从2裸副本(B)中提取更改,因此合并冲突发生在merge_A中。现在让我们说foo.c有3条冲突线,3个开发者必须cd到merge_A并解决它。 – 2010-12-01 10:29:19