如何检测 git 中手动解决的冲突

How to detect manually resolved conflicts in git

在我的 git 存储库中,我有一个文件,有人通过选择他们自己的版本而不是主版本来合并该文件。他还更改了提交描述并删除了其描述的 'Conflicts:' 部分。有什么方法可以使用 git log 或其他一些 git 命令来查看合并哪些提交是手动解决的,即使它们已从提交描述中删除?

请注意,我尝试在 git diffgit log 中使用 -c 选项,但没有显示更改。

我附上了一个显示如何重现此内容的 pastebin: http://pastebin.com/rb75nR5J

您可以使用此命令查看合并文件列表:
git log -U -m --simplify-merges --merges

这将打印出在解决冲突期间使用的补丁。
--merges 将仅打印出合并提交(通常冲突将被解决并提交到合并提交中)

您还可以添加 --first-parent 以仅显示来自当前分支的合并提交

您可以使用 cat-file 列出合并提交的父项:

$ git cat-file -p 531a6db50cd71f872d7d68b9c9cf5f9bbd9f6847
tree a35f8705115ca5e05a9e19f90473b7fded4b51e8
parent eb37b8f9e3e72eb170d3f968b9bc5ddc79d2db3b
parent cc0407d3c016600253b41b01f1bc6d1a6237bd7e