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