如何查找多行的git日志消息?

时间:2012-08-06 13:52:47

标签: git grep

我想在项目中使用git log来仅查看在提交消息中有多行的提交(即它们具有更长的描述)。最好的方法是什么?

我尝试git log --grep='\n\n',它提出了一个提交列表,其中有多行,但它不是一个完整的列表。 (我手动回过了一些完整的日志,并快速找到了我的命令未输出的多行消息提交。)

然后我也尝试了git log --grep='\n\r\?\n',以防万一在某些提交中有一些Windows风格的行结尾(我正在使用msysgit,所以它可能会?),但它来了使用与上述相同的输出。

1 个答案:

答案 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

基本上:打印提交哈希并提交消息体(减去主题行)包含在一些不常见的字符串中,排除这些主体为空的行(例如,在消息中没有换行的提交),然后只取第一行(那些带有在开头提交哈希),并只打印哈希值。