9

可能重复:
Git - 如何在所选文件上强制合并冲突和手动合并

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

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

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

所以我们的情况有点混乱,非常感谢所有帮助。

4

2 回答 2

2

您可以做的是将合并运行为:

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

这不会创建合并提交或快进主文件,而只是将合并的文件放在您的工作目录中。您可以检查更改。一旦你满意,你可以做一个git commit或恢复git reset --hard

于 2012-12-20T16:45:49.567 回答
2

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

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

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

于 2012-12-20T16:37:23.937 回答