可能重复:
Git - how to force merge conflict and manual merge on selected file
我们正在尝试在两个分支之间进行合并:稳定代码和新功能。
合并功能对我们不起作用:它有时会显示冲突,但通常只是覆盖文件而不会告诉我们任何冲突,可能是它认为正确的版本。
是否可以阻止此覆盖,以便向我们显示所有冲突的行?我们尝试使用git diff来了解它有多广泛,但有几千行,因为我们在我们的稳定分支上进行了相当广泛的调试......所以我们真的需要让合并功能工作,如果可能的话
所以我们处于一个混乱的状态,非常感谢所有的帮助。
答案 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