git可以告诉我,如果不实际合并,合并是否会发生冲突? [重复]

问题描述

|                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

        我假设您只是想在实际尝试合并之前先弄清楚自己所遇到的麻烦...并且在合并失败后重置为最后一次提交相对容易,所以我不会如果这是预期的方法,则感到惊讶。 就是说,如果您真的不想触摸工作树中的现有文件,则可以创建一个补丁并将其针对目标分支进行测试。这还具有显示确切地对哪些文件进行了更改的好处-只需在文本编辑器中打开补丁文件即可。
git checkout -b mycrazybranch
[change some stuff...]
git add .
git commit -m \"changed some stuff\"
git format-patch master --stdout > crazy.patch
git checkout master
git apply crazy.patch --check
[all good! cleanup...]
rm crazy.patch
如您所见,这将创建一个补丁文件,然后可以使用--check对其进行测试,看是否有任何错误,然后删除该补丁文件。     ,        看到有冲突后,您可以做
git merge --abort
。     ,        作为对现有答案的总结,有两种方法可以检查是否存在合并冲突
git format-patch $(git merge-base branch1 branch2)..branch2 --stdout | git apply --3way --check -
注意,当您运行上述命令时,当前分支应为“ 3” 另一种方式:
git merge --no-commit branch2
# check the return code here
git merge --abort
    ,        不完全是那样。但是您可以使用--no-commit选项,因此合并后它不会自动提交结果。这样,您可以检查(如果需要)撤消合并,而不会弄乱提交树。