乐闻世界logo
搜索文章和话题

Git 如何只查看单个用户的提交日志?

9 个月前提问
5 个月前修改
浏览次数95

6个答案

1
2
3
4
5
6

要查看仅包含一个用户提交的git日志,您可以使用git log命令,并配合--author选项来指定作者名字。这样,Git 将会筛选出所有匹配指定作者名字的提交记录。命令的基本格式如下:

bash
git log --author="用户名"

请将"用户名"替换为您想要查看提交记录的用户的真实姓名或邮箱地址的一部分。Git会展示出所有匹配该用户名片段的提交。

例如,如果您想要查看由用户John Doe提交的所有日志,您可以运行:

bash
git log --author="John Doe"

如果您已知用户的电子邮箱,并且想要更精确地过滤,可以这样写:

bash
git log --author=johndoe@example.com

此外,如果你想要的搜索更加精细化,可以使用正则表达式:

bash
git log --author="^John"

上面的命令将会显示所有名字以"John"开头的作者的提交。

例子:

假设我参与了一个名为example-project的项目,并对这个项目做了很多贡献。项目经理想要查看我所有的提交记录,我的Git用户名是Alex。项目经理可以在项目的根目录打开终端或命令提示符,然后输入以下命令:

bash
git log --author="Alex"

这将输出所有我作为作者的提交,包括提交哈希、提交信息、日期和时间等详细信息。项目经理可以通过这些信息来分析我的工作量和贡献内容。

2024年6月29日 12:07 回复

这适用于 gitk git loggitk——查看历史记录的两种最常见的方式。 您不需要使用全名:

shell
git log --author="Jon"

将匹配“Jonathan Smith”所做的提交

shell
git log --author=Jon

shell
git log --author=Smith

也会起作用。如果不需要任何空格,引号是可选的。

--all如果您打算搜索存储库中的所有分支而不仅仅是当前提交的祖先,请添加。

还可以轻松匹配多个作者,因为正则表达式是此过滤器的基础机制。

因此,要列出 Jonathan 或 Adam 的提交,您可以这样做:

shell
git log --author="\(Adam\)\|\(Jon\)"

为了使用本问题中提到的正则表达式排除特定作者或一组作者的提交,您可以将负向前瞻与开关结合使用 --perl-regexp

shell
git log --author='^(?!Adam|Jon).*$' --perl-regexp

或者,您可以通过使用和管道排除 Adam 创作的提交 bash

shell
git log --format='%H %an' | grep -v Adam | cut -d ' ' -f1 | xargs -n1 git log -1

如果您想排除 Adam 提交的(但不一定是创作的)提交,请替换 %an%cn.

2024年6月29日 12:07 回复

git log --author="that user"

2024年6月29日 12:07 回复
shell
git help log

显示 git log 的联机帮助页。按 / 搜索“author”,然后输入“author”,然后按 Enter。键入“n”几次即可进入相关部分,其中显示:

shell
git log --author="username"

请注意,这将为您提供提交的作者,但在 Git 中,作者可以是与提交者不同的人。

2024年6月29日 12:07 回复
bash
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
2024年6月29日 12:07 回复

你的答案