如何检测 git 中手动解决的冲突
How to detect manually resolved conflicts in git
在我的 git 存储库中,我有一个文件,有人通过选择他们自己的版本而不是主版本来合并该文件。他还更改了提交描述并删除了其描述的 'Conflicts:' 部分。有什么方法可以使用 git log
或其他一些 git 命令来查看合并哪些提交是手动解决的,即使它们已从提交描述中删除?
请注意,我尝试在 git diff
和 git 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
在我的 git 存储库中,我有一个文件,有人通过选择他们自己的版本而不是主版本来合并该文件。他还更改了提交描述并删除了其描述的 'Conflicts:' 部分。有什么方法可以使用 git log
或其他一些 git 命令来查看合并哪些提交是手动解决的,即使它们已从提交描述中删除?
请注意,我尝试在 git diff
和 git 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