如何查看一个用户的git日志';他犯了什么罪?
使用如何查看一个用户的git日志';他犯了什么罪?,git,version-control,git-log,Git,Version Control,Git Log,使用git log时,如何按用户筛选,以便只看到该用户的提交 git log --author="that user" 提供git日志的主页。按/然后键入“author”,然后按Enter,在此处搜索“author”。键入“n”几次,进入相关部分,显示: git log --author="username" 如前所述 请注意,这将为您提供提交的作者,但在Git中,作者可以是与提交者不同的人(例如,在Linux内核中,如果您以普通用户身份提交修补程序,它可能由另一个管理用户提交。)有关更多详
git log
时,如何按用户筛选,以便只看到该用户的提交
git log --author="that user"
提供git日志的主页。按/然后键入“author”,然后按Enter,在此处搜索“author”。键入“n”几次,进入相关部分,显示:
git log --author="username"
如前所述
请注意,这将为您提供提交的作者,但在Git中,作者可以是与提交者不同的人(例如,在Linux内核中,如果您以普通用户身份提交修补程序,它可能由另一个管理用户提交。)有关更多详细信息,请参阅)
大多数时候,用户既是提交者又是作者。这适用于
git log
和-2种最常见的历史查看方式。您不需要使用全名:
git log --author="Jon"
将匹配“Jonathan Smith”所做的承诺
及
这也行。如果不需要任何空格,则引号是可选的
添加--all
,如果您希望在回购中搜索所有分支,而不仅仅是当前提交的祖先。
您还可以轻松匹配多个作者,因为正则表达式是此过滤器的底层机制。因此,要列出Jonathan或Adam的提交,可以执行以下操作:
git log --author="\(Adam\)\|\(Jon\)"
如前所述,为了排除特定作者或一组作者使用正则表达式进行的提交,您可以结合使用--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
。有关这方面的更多详细信息,请参阅我的博文:您甚至可以通过使用用户名的一部分将其缩写为:
git log --author=mr #if you're looking for mrfoobar's commits
这将提供文本格式的提交。在github上还有一个秘密方法
您可以在提交视图中通过附加参数“author=github\u handle”按作者筛选提交。例如,该链接显示提交到Dynjs项目的列表,以获取更多详细信息-(此处%an
指作者)
使用以下命令:-
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
如果使用GitHub:
- 去分行
- 点击提交
branch_x: < comment>
author_name committed 2 days ago
branch\u x:
2天前提交的作者姓名
- 查看单个作者的提交;单击author_name,您可以在该分支上看到该作者的所有提交
git log --author="<$(git config user.email)>"
git日志--author=“”
通过在.bashrc文件中添加此小片段,以彩色显示x用户的n个日志
gitlog() {
if [ "$1" ] && [ "$2" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1" --author="$2"
elif [ "$1" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1"
else
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order
fi
}
alias l=gitlog
要显示Frank的最后10项承诺:
l10弗兰克
要显示任何人最近的20次提交,请执行以下操作:
L20
试试这个工具
用法
由于另一个问题(可能是错误的)被锁定,我将把它放在这里: 显示作者的提交计数:
git shortlog -nse
git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show
查找特定用户名的所有提交:
git shortlog -nse
git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show
您可以使用=或“空格”。
例如,以下两个命令返回相同的
git log --author="Developer1"
git log --author "Developer1"
我的案例:我正在使用源代码树,我遵循以下步骤:
CRL+3
尽管如此,还是有很多有用的答案。然而,只是为了增加另一种方式。你也可以使用
git shortlog --author="<author name>" --format="%h %s"
git shortlog--author=“”--format=“%h%s”
它将以分组方式显示输出:
<Author Name> (5):
4da3975f dependencies upgraded
49172445 runtime dependencies resolved
bff3e127 user-service, kratos, and guava dependencies upgraded
414b6f1e dropwizard :- service, rmq and db-sharding depedencies upgraded
a96af8d3 older dependecies removed
(5):
4da3975f依赖项已升级
已解决49172445个运行时依赖项
bff3e127用户服务、奎托斯和番石榴依赖项升级
414b6f1e dropwizard:-服务、rmq和db分片相关性升级
a96af8d3已删除旧的从属关系
在这里,当前分支下的
总共完成了5次提交。然而,您也可以使用--all
在git存储库中的任何地方(所有分支)强制执行搜索
One catch:git在内部尝试将输入的
与git数据库中作者的姓名和电子邮件进行匹配。它区分大小写 有没有相反的方法?假设-我想查看除Jon之外的所有提交。@Ian as for git help log“Jon”是一个正则表达式,因此它应该是非常简单的日志--格式=%an | egrep-v“Jon*”| xargs-n 1 git log-1以任何方式使gitk
忽略其他作者的父提交?(它们以白色圆圈显示)相反,git log--graph
不显示父提交;它只显示给定作者的提交。我希望在gitk
中看到相同的输出。(已经检查了首选项和编辑视图-找不到任何有用的内容。)注意这种情况sensitive@James我认为你的消极态度是没有道理的。我只是想教他如何从命令行中查找,以防他忘记。我想你把我误认为是一个只说RTFM的人,但我在回答中包括了答案。这不是否定。事实上,人们来到这里寻求建议,很多人想用RTFM的一些变体来回应。“这对社区来说是个坏兆头。”詹姆斯,我不得不同意我们的看法。他确实回答了这个问题,他提出了一个寻找答案的策略,这有助于找到其他与git相关问题的答案。我认为这并不像这件事那么简单。现在,我同意UNSUN的观点,我们应该教育人们如何为自己做事——这是个好主意。UNSUN稍微出错的地方是假设a)OP知道如何搜索手册页,更重要的是b)OP知道搜索“作者”。他们可能搜索过“提交人”或“姓名”之类的东西。@JohnHunt你是对的,
git log --author=USERNAME --oneline | awk '{print $1}' | xargs git show
git log --author="Developer1"
git log --author "Developer1"
git shortlog --author="<author name>" --format="%h %s"
<Author Name> (5):
4da3975f dependencies upgraded
49172445 runtime dependencies resolved
bff3e127 user-service, kratos, and guava dependencies upgraded
414b6f1e dropwizard :- service, rmq and db-sharding depedencies upgraded
a96af8d3 older dependecies removed