合并期间Git会覆盖文件 - 不会显示冲突

时间:2012-12-20 15:59:34

标签: git github git-merge

  

可能重复:
  Git - how to force merge conflict and manual merge on selected file

我们正在尝试在两个分支之间进行合并:稳定代码和新功能。

合并功能对我们不起作用:它有时会显示冲突,但通常只是覆盖文件而不会告诉我们任何冲突,可能是它认为正确的版本。

是否可以阻止此覆盖,以便向我们显示所有冲突的行?我们尝试使用git diff来了解它有多广泛,但有几千行,因为我们在我们的稳定分支上进行了相当广泛的调试......所以我们真的需要让合并功能工作,如果可能的话

所以我们处于一个混乱的状态,非常感谢所有的帮助。

2 个答案:

答案 0 :(得分:2)

由于我不知道如何重现你的问题,我需要做一些猜测。

根据我的经验,通常在进行合并之前执行git pull --rebase可以减少围绕git merge的混淆。这将从远程获取最新更改,并将更改合并到它们上。但是,如果您打算在早期提交中合并更改,请不要这样做。在任何情况下,请在执行pull之前记下最新的提交ID,以便在出现问题时可以恢复它。

现在进入合并本身,您可以尝试使用git merge --no-ff --no-commit来阻止提交合并。我不知道这是否会为您提供您希望看到的完整冲突报告,但它允许您检查合并结果(如模拟模式)。如果您不喜欢结果,可以使用git reset --hard恢复合并。

答案 1 :(得分:1)

你可以做什么,将合并运行为:

git merge --no-commit --no-ff your-branch

这不会创建合并提交或快进主服务器,但只会将合并的文件放在工作目录中。您可以检查更改。满意后,您可以执行git commit或按git reset --hard

还原