我正在合并一个可能有很多冲突的远程分支机构。我怎么知道它是否会有冲突?

我没看到任何类似于,git合并的预演。


当前回答

为你的工作副本制作一个临时副本,然后合并,并将两者区分开来。

其他回答

我使用git日志来查看从主分支到特性分支上发生了什么变化

git log does_this_branch..contain_this_branch_changes

例如,查看哪些提交在一个已经/没有被合并到master的特性分支中:

git log master..feature_branch

我知道这在理论上是跑题的,但对于从谷歌搜索到这里的人来说,实际上是非常切题的。

当有疑问时,你可以使用Github界面创建一个pull-request,并检查它是否表明干净的合并是可能的。

作为对已有答案的总结,有两种方法来检查是否存在合并冲突

Git format-patch $(Git merge-base branch1 branch2).——| git apply——3way——check -

注意,在运行上述命令时,当前的分支应该是branch1

另一种方法:

git merge --no-commit branch2
# check the return code here
git merge --abort

Git在合并时引入了——ff-only选项。

来自:http://git-scm.com/docs/git-merge ——ff-only 拒绝合并并以非零状态退出,除非当前HEAD已经是最新的,或者合并可以作为快进解决。

这样做将尝试合并和快进,如果不能,它将中止并提示您不能执行快进,但不影响您的工作分支。如果它可以快进,那么它将在工作分支上执行合并。此选项也可用于git拉取。因此,你可以这样做:

git pull --ff-only origin branchA #See if you can pull down and merge branchA

git merge --ff-only branchA branchB #See if you can merge branchA into branchB

不完全是那样的。但是您可以使用——no-commit选项,这样它就不会在合并后自动提交结果。通过这种方式,您可以检查合并,如果需要的话,还可以在不破坏提交树的情况下撤消合并。