合并两个git分支时查找冲突文件

问题描述

我有我的主分支“ master”和两个派生分支“ branch-a”和“ branch-b”。当我尝试合并“ branch-b”中的“ branch-a”时,github桌面检查:

enter image description here

显示将有两个冲突的文件,这些可能是代码文件或dll或图像,我不知道:

enter image description here

当我单击“合并”时,它表明文件自动合并。

我想知道哪些文件有冲突?

我的软件中具有多项功能,并且我无法测试整个应用程序以查找哪个模块被此合并损坏。也许git已经接受了“ branch-a”代码/ dll /图像并丢弃了“ branch-b”代码/ dll /图像?我不知道。我只想要冲突的文件名。多数情况下是通过dll /库发生的。

解决方法

最快的方法是在文件"<<<<"">>>>"中搜索冲突标记

如果找不到任何内容:git可能选择了一种将这些冲突组合在一起的方法。


假设您的提交名称如下:

* mmmm (HEAD -> branch-b) Merged branch 'branch-a' into branch-b
|\
| * aaaa (branch-a) commit on branch-a
* | bbbb commit on branch-b
...

您可以查看:

# diff with branch-a
git diff --name-status aaaa mmmm
# rather than typing explicit commit hashes,you can also type :
git diff --name-status HEAD^2 HEAD

# diff with branch-b
git diff --name-status bbbb mmmm
# same as :
git diff --name-status HEAD^1 HEAD

如果文件名出现在branch-a的差异中,而不出现在branch-b的差异中:
这意味着合并导致将版本保留为branch-b

反之:如果名称出现在branch-b的差异中,但没有出现在branch-a的差异中:
合并会保留branch-a的版本。

如果名称同时出现在两个列表中:
这意味着git合并了两个内容以创建合并。


您可以缩小列出到目录或特定文件的文件范围:

git diff --name-status HEAD^1 HEAD -- code/dll/
git diff --name-status HEAD^1 HEAD -- code/dll/image
,

您可以继续点击“将分支-a 合并到分支-b”,GitHub 桌面接下来要做的就是向您显示冲突文件,并允许您在实际提交合并之前解决冲突。您还可以选择中止合并,如下图所示:

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...