以作者或提交信息显示提交记录的Git日志

3

我想使用 git log(也可以考虑其他方法)列出所有符合以下条件的提交:

  • 由特定作者完成

或者

  • 其提交消息中包含特定单词

我知道如何分别搜索它们,但我希望获得一个包含所有匹配提交的单一列表。最简单的方法是什么?


使用git rev-list来生成两组修订版本(您可以根据自己的标准组合和排序),然后使用git log --no-walk --stdin来读取组合列表并显示每个提交。 - torek
@torek 而要合并这两个集合,我需要使用一些外部于 Git 的东西吗?我主要是在寻找一种内置的方法来实现这一点,但如果不存在的话,我想我可以编写一个脚本来实现。 - franmon
是的。如果您只是将这两个列表连接起来,那可能就足够了 - 我没有测试过Git的行为(git log 可能会执行自己的排序或以 stdin 的顺序显示它们)。 - torek
@torek 很棒!我测试了一下,它可以工作!如果你添加你的答案,我会批准它,并将我的最终解决方案添加为问题编辑。谢谢 ;) - franmon
1个回答

2
您可以使用命令git rev-list 生成应显示的git log哈希ID,然后使用git log --no-walk --stdin 读取这些ID,按照通常的git log排序标准进行排序,并显示它们。(注意:这偶尔会改变输出顺序,与git log 不使用 --no-walk会有所不同)。
例如:
(git rev-list --author 'A. U. Thor' HEAD;
 git rev-list --grep 'pattern' HEAD) |
git log --no-walk --stdin

(为了发布的目的而拆分成三行;一些命令行解释器在实际使用时要求命令为单行)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接