协慌网

登录 贡献 社区

如何查看仅一个用户提交的 git 日志?

使用git log ,如何按用户进行过滤,以便只查看该用户的提交?

答案

这适用于git loggitk这两种最常见的查看历史记录的方式。您不需要使用整个名称。

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 项目的提交列表