合并分支时如何防止更改被覆盖?

时间:2012-04-18 17:32:50

标签: git version-control merge branching-and-merging

我是Git的新手(来自Subversion和Bazaar)。

当我在一个分支上工作并进行提交时,从那时起主人就已经进行了一些提交,当我将我的分支合并到主服务器中时,我发现了一些奇怪的事情:

  • 在我的提交和主提交中,我们都创建了一个具有相同路径的新文件。它决定用我的文件完全覆盖主文件,而不会发出冲突警告!
  • 两个分支中已修改的预先存在的文件向我提供了冲突警告,并为某些部分添加了内联注释,但对于其他部分,它实际上会在没有警告的情况下覆盖。

我可以告诉Git对这些冲突更加严格吗?我不希望它在没有警告的情况下覆盖文件,如果它要评论文件供我检查,我宁愿它提供总差异的绝对评论。

如果没有,我被迫确定自己修改过的文件,然后手动合并它们。

1 个答案:

答案 0 :(得分:2)

当我尝试第一个场景时,我得到以下输出:

Auto-merging conflicted
CONFLICT (add/add): Merge conflict in <filename>

您的第二个场景将在两个版本之间不同的行上产生冲突,但不会在一个版本或另一个版本中更改的行。这是预期的行为。

Git实际上比大多数其他VCS更好地处理这些类型的冲突。您的流程还有其他问题导致问题。也许你有一些罕见的配置设置。也许你误解了你在其中一个命令上使用的旗帜的含义。也许某些文件实际上并未在您或您同事的工作目录中提交。也许你所处的分支与你想象的不同。找到一个准确,可重复的命令序列,这些命令没有按预期执行,我们可以尝试从那里帮助您。