我想在项目中使用git log
来仅查看在提交消息中有多行的提交(即它们具有更长的描述)。最好的方法是什么?
我尝试git log --grep='\n\n'
,它提出了一个提交列表,其中有多行,但它不是一个完整的列表。 (我手动回过了一些完整的日志,并快速找到了我的命令未输出的多行消息提交。)
然后我也尝试了git log --grep='\n\r\?\n'
,以防万一在某些提交中有一些Windows风格的行结尾(我正在使用msysgit
,所以它可能会?),但它来了使用与上述相同的输出。
答案 0 :(得分:3)
这似乎对我有用(在Linux上):
git log --pretty=format:'%H<msgst>%b<msge>' \
| fgrep -v '<msgst><msge>' | fgrep '<msgst>' | cut -b1-40 \
| git log --stdin --no-walk
基本上:打印提交哈希并提交消息体(减去主题行)包含在一些不常见的字符串中,排除这些主体为空的行(例如,在消息中没有换行的提交),然后只取第一行(那些带有在开头提交哈希),并只打印哈希值。