使用gitlog时,如何按用户进行筛选,以便只看到该用户的提交?
当前回答
我的案例:我使用的是源代码树,我遵循了以下步骤:
按下CRL+3已更改下拉列表作者键入名称“Vinod Kumar”
其他回答
cat | git log --author="authorName" > author_commits_details.txt
这将以文本格式提供提交。
这对gitlog和gitk都有效——这是查看历史的两种最常见的方式。您不需要使用整个名称:
git log --author="Jon"
将符合“乔纳森·史密斯”的承诺
git log --author=Jon
and
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替换为%cn。有关这方面的更多详情,请参阅我的博客文章:http://dymitruk.com/blog/2012/07/18/filtering-by-author-name/
git help log
为您提供gitlog的手册页。按/,然后键入“author”,然后按Enter键,在那里搜索“作者”。键入“n”几次以进入相关部分,其中显示:
git log --author="username"
正如已经建议的那样。
注意,这将为您提供提交的作者,但在Git中,作者可以是与提交者不同的人(例如,在Linux内核中,如果您以普通用户身份提交补丁,则可能由其他管理用户提交)?有关详细信息)
大多数时候,人们所说的用户既是提交者,也是作者。
虽然,有很多有用的答案。然而,只是为了添加另一种方式。您也可以使用
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
这里,<AuthorName>在当前分支下总共完成了5次提交。然而,您也可以使用--all在git存储库中的任何地方(所有分支)强制搜索。
一个陷阱:git内部试图将输入<author-name>与git数据库中作者的姓名和电子邮件匹配。它区分大小写。
如果要过滤自己的提交:
git log --author="<$(git config user.email)>"
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别