67

由于我们项目的发布步骤,我无法合并两个分支,但我想知道两个分支是否存在冲突。我怎样才能做到这一点?

4

2 回答 2

114

假设您在master分支上,并且您想测试该dev分支是否可以在没有冲突的情况下合并到master.

# In the master branch
git merge dev --no-ff --no-commit

之后,您将能够知道是否存在冲突。

要在正常情况下返回,只需中止合并:

git merge --abort

根据 git 文档:

--ff
如果合并解析为快进,则不生成合并提交,仅更新分支指针。这是默认行为。

-no-ff
即使合并解析为快进,也会生成合并提交。

--commit
执行合并并提交结果。此选项可用于覆盖 --no-commit。

--no-commit
使用 --no-commit 执行合并,但假装合并失败并且不自动提交,让用户有机会在提交之前检查并进一步调整合并结果。

于 2012-06-04T09:50:51.950 回答
1

根据用例提供答案 - 您在功能分支上 - 正在进行更改。与此同时,另一位同事对共享文件进行了更改并合并到主干中。现在您已准备好合并。此时您将遇到合并冲突的问题。

确保您拥有最新版本的主干分支

git fetch
git checkout trunk
git pull

切换回功能分支

git checkout feature

在功能分支中,模拟合并到主干分支作为快进(--no-ff)。--no-commit 将阻止自动提交

git merge trunk --no-ff --no-commit

检查文件。

  • [<<<<<<< HEAD] 和 [=======] 之间的行是功能分支中的行
  • [=======] 和 [>>>>>>> trunk] 之间的行是主干分支中的行

要中止模拟合并并返回原始状态,请运行

git merge --abort
于 2022-01-13T07:44:18.370 回答