当使用 git log
时,如何按用户过滤以便我只看到来自该用户的提交?
最佳答案
这适用于 git log
和 gitk - 查看历史记录的两种最常见方式。
您不需要使用全名:
git log --author="Jon"
将匹配“Jonathan Smith”所做的提交
git log --author=Jon
和
git log --author=Smith
也可以。如果不需要任何空格,引号是可选的。
添加 --all
如果您打算在您的存储库中搜索所有分支而不仅仅是当前提交的祖先。
您还可以轻松匹配多个作者,因为正则表达式是此过滤器的基础机制。因此,要列出 Jonathan 或 Adam 的提交,您可以这样做:
git log --author="\(Adam\)\|\(Jon\)"
为了排除特定作者或一组作者使用正则表达式的提交,如前所述 in this question , 你可以使用 negative lookahead结合 --perl-regexp
开关:
git log --author='^(?!Adam|Jon).*$' --perl-regexp
或者,您可以使用 bash
和管道排除由 Adam 编写的提交:
git log --format='%H %an' |
grep -v Adam |
cut -d ' ' -f1 |
xargs -n1 git log -1
如果您想排除由 Adam 提交(但不一定是作者)的提交,请将 %an
替换为 %cn
。有关此的更多详细信息,请参阅我的博客文章:http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/
关于git - 如何查看只有一个用户提交的 git 日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4259996/