Git 报告合并冲突,尽管文件相同

git reports merge conflict although files are the same

提问人:Veljko 提问时间:10/18/2023 更新时间:10/22/2023 访问量:88

问:

我在 git 中有一个 master 分支和 development/Server 分支。 我创建了 Pull Request 并尝试将 development/Server 合并到 master 分支,但我面临冲突。 我收到 2 个文件的冲突:“此拉取请求无法合并。 您需要解决冲突才能合并”.h.cpp

git merge也没有通过。

当我比较这两个文件时,我可以看到它们是相同的。手动尝试了一下,我还检查了在线比较工具(例如codebeautify)

为什么 git 报告冲突,尽管文件是相同的???

请给我任何你可能有的提示,我真的找不到解决方案。

多谢!!!

git bitbucket 拉取请求 git-merge-conflict

评论

2赞 eftshift0 10/18/2023
我很难相信 git 会抱怨只是因为。让我们检查一下假设。当您站在 PR 中设置的分支上时,您能向我们展示这些命令的输出吗? 和(请注意,它不是在两个 diff 命令中)。检查文件是否显示在两个输出中。git diff --name-status @...the-upstream-branchgit diff --name-status the-upstream-branch...@.....
0赞 knittl 10/18/2023
您是否也检查了行尾是否相同?或空格与制表符。或 UTF-8 与 UTF-16 编码文件。或者,或者,或者。 如果两个文件是相同的字节,会立即告诉您。sha1sum
0赞 Veljko 10/18/2023
@eftshift0你能详细说明一下我是否应该写“master”而不是“the-upstream-branch”吗?
0赞 Veljko 10/18/2023
@knittl如何检查这一点?在哪里,如何?提前致谢sha1sum
1赞 knittl 10/19/2023
@Veljko签出文件的 v1,请在其上运行。签出文件的 v2,在其上运行。比较哈希值。sha1sumsha1sum

答:

0赞 knittl 10/22/2023 #1

路径在合并过程中发生冲突的原因有很多:

  • 合并的两边都进行了不兼容的文本更改(例如,更改同一行)。
  • 双方在同一路径下添加了一个具有不同内容的文件。
  • 一端添加了文件,另一端添加了目录。
  • 一方更改了文件,另一方删除了文件。
  • 路径的权限(模式)不兼容,例如合并的一侧添加可执行文件,而另一侧在同一路径下添加非可执行文件。

git status会告诉你哪些路径是冲突的,是哪种冲突。

git diff将显示相互冲突的更改。

使用所需的内容或权限解决冲突和文件,然后进行合并。git addgit commit

评论

0赞 Veljko 10/24/2023
谢谢,您能帮我解决这个问题吗: stackoverflow.com/questions/77351555/... 非常感谢...