这适用于git log
和gitk
这两种最常见的查看历史记录的方式。您不需要使用整个名称。
git log --author="Jon"
将匹配 “乔纳森史密斯” 的提交
git log --author=Jon
和
git log --author=Smith
也会有用。如果您不需要任何空格,则引号是可选的。
添加--all
如果您打算搜索所有分支而不仅仅是您的仓库中当前提交的祖先。
您还可以轻松匹配多个作者,因为正则表达式是此过滤器的基础机制。因此,要列出 Jonathan 或 Adam 的提交,您可以这样做:
git log --author="\(Adam\)\|\(Jon\)"
为了使用正则表达式排除特定作者或作者集的提交,如本问题所述 ,您可以使用负向前瞻与--perl-regexp
开关组合:
git log --author='^(?!Adam|Jon).*$' --perl-regexp
或者,您可以使用bash
和 piping 来排除 Adam 创作的提交:
git log --format='%H %an' |
grep -v Adam |
cut -d ' ' -f1 |
xargs -n1 git log -1
如果要排除 Adam 提交(但不一定是创作)的提交,请将%an
替换%an
%cn
。有关这方面的更多详细信息,请参阅我的博客文章: http : //dymitruk.com/blog/2012/07/18/filtering-by-author-name/
git log --author="that user"
在 github 上还有一个秘密的方式......
您可以通过附加 param ?author=github_handle
在提交视图中按作者过滤提交。例如,链接https://github.com/dynjs/dynjs/commits/master?author=jingweno显示了 Dynjs 项目的提交列表