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

合并两个git分支时查找冲突文件,git,git-merge,git-diff,git-merge-conflict,github-desktop,Git,Git Merge,Git Diff,Git Merge Conflict,Github Desktop,我有我的主分支“master”和两个派生分支“branch-a”和“branch-b”。当我尝试在“branch-b”github桌面检查中合并“branch-a”时: 显示将有两个冲突的文件,可能是代码文件、dll或图像,我不知道: 当我单击“合并”时,它显示文件已自动合并 我想知道哪些文件有冲突 我的软件中有多个功能,我无法测试整个应用程序以找出哪个模块被此合并损坏。也许git已经获取了'branch-a'代码/dll/image,并丢弃了'branch-b'代码/dll/image?我不知

我有我的主分支“master”和两个派生分支“branch-a”和“branch-b”。当我尝试在“branch-b”github桌面检查中合并“branch-a”时: 显示将有两个冲突的文件,可能是代码文件、dll或图像,我不知道: 当我单击“合并”时,它显示文件已自动合并

我想知道哪些文件有冲突


我的软件中有多个功能,我无法测试整个应用程序以找出哪个模块被此合并损坏。也许git已经获取了'branch-a'代码/dll/image,并丢弃了'branch-b'代码/dll/image?我不知道。我只想知道有冲突的文件名。大多数情况下,它发生在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
的diff中,而不是带有
branch-b
的diff中:
这意味着合并导致保持分支b的版本

相反:如果名称出现在带有
branch-b
的diff中,但不出现在带有
branch-a
的diff中:
合并保留了分支a的版本

如果两个列表中都出现一个名称:
这意味着,
git
将这两个内容结合起来创建合并


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

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

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


此GUI工具中有什么无法显示此信息的?别再用了,它显然不好。你确定冲突已经解决了吗?我打赌不是。使用命令行并询问git状态。它的“github桌面”:好吧,扔掉它。学习使用命令行。或者使用更好的GUI。这似乎不是代码冲突,代码冲突显示为>>>和