如果存在合并提交或正常提交,则过滤合并提交

Filter merge commit if merge commit is present or normal commit

我只是想知道是否有一种方法可以在提交时显示“合并提交”,或者在没有合并提交时显示正常提交。

注意:提交在同一个分支上。 提交消息:

123329343erer Merge “Add global variable names.” 
1223243454d4 Relocate an blah 
1232ee53d343 Add global variable names 

树看起来像:

* 123329343erer Merge “Add global variable names.”
|\ 1223243454d4 Relocate an blah
| | 1232ee53d343  Add global variable names
|/ .....

你看正常提交 #3 和合并 #1 的文本是多么相似。 唯一的区别是提交消息中的 "Merge:"。

我想做的是,当我做“git log”时,我只想看到 Commit Message:

123329343erer Merge “Add global variable names.” 
1223243454d4 Relocate a blah

所以每次都有合并,我想看合并提交,但如果没有合并,也想看正常提交。

这可以通过 git 日志实现吗?

Git 不提供执行此操作的选项。使用 git log,您可以使用 --merges 仅查看合并,或 --no-merges 仅查看非合并,如果您想查看所有的,您可以使用 --topo-order与主分支上的工作分开在分支上提交。

但是,Git 不提供基于不同提交的消息(或其他属性)的提交过滤。这样做实施起来会很复杂,并且在某些情况下可能表现不佳。