如何解决合并两个git分支时查找冲突文件
我有我的主分支“ master”和两个派生分支“ branch-a”和“ branch-b”。当我尝试合并“ branch-b”中的“ branch-a”时,github桌面检查: 并显示将有两个冲突的文件,这些可能是代码文件或dll或图像,我不知道: 当我单击“合并”时,它表明文件已自动合并。
我想知道哪些文件有冲突?
我的软件中具有多项功能,并且我无法测试整个应用程序以查找哪个模块被此合并损坏。也许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 桌面接下来要做的就是向您显示冲突文件,并允许您在实际提交合并之前解决冲突。您还可以选择中止合并,如下图所示:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。