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

时间:2010-11-23 19:31:43

标签: git version-control git-log

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

15 个答案:

答案 0 :(得分:1481)

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

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/

答案 1 :(得分:44)

git log --author="that user"

答案 2 :(得分:40)

在github上还有一个秘密方式......

您可以通过附加参数?author=github_handle按提交视图中的作者过滤提交。例如,链接https://github.com/dynjs/dynjs/commits/master?author=jingweno显示了Dynjs项目的提交列表

答案 3 :(得分:28)

git help log

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

git log --author="username"

已经建议。

请注意,这将为您提供提交的作者,但在Git中,作者可以是与提交者不同的人(例如在Linux内核中,如果您以普通用户身份提交补丁,则可能由另一个管理用户。)有关详细信息,请参阅Difference between author and committer in Git?

大多数情况下,人们所指的是提交者和作者。

答案 4 :(得分:18)

提取更多详情 - (此处%an指作者)

使用: -

git log --author="username" --pretty=format:"%h - %an, %ar : %s"

答案 5 :(得分:15)

cat | git log --author="authorName" > author_commits_details.txt

这会以文本格式提交您的提交。

答案 6 :(得分:11)

您甚至可以通过简单地使用部分用户名来缩短这一点:

git log --author=mr  #if you're looking for mrfoobar's commits

答案 7 :(得分:11)

如果您想过滤自己的提交:

[]

答案 8 :(得分:7)

试试这个工具 https://github.com/kamranahmedse/git-standup

用法

```bash
$ git standup [-a <author name>] 
              [-w <weekstart-weekend>] 
              [-m <max-dir-depth>]
              [-f]
              [-L]
              [-d <days-ago>]
              [-D <date-format>] 
              [-g] 
              [-h]
```

以下是每个标志的描述

- `-a`      - Specify author to restrict search to (name or email)
- `-w`      - Specify weekday range to limit search to (e.g. `git standup -w SUN-THU`)
- `-m`      - Specify the depth of recursive directory search
- `-L`      - Toggle inclusion of symbolic links in recursive directory search
- `-d`      - Specify the number of days back to include
- `-D`      - Specify the date format for "git log" (default: relative)
- `-h`      - Display the help screen
- `-g`      - Show if commit is GPG signed or not
- `-f`      - Fetch the latest commits beforehand

答案 9 :(得分:4)

通过在.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次提交:

l 10 frank

显示最近20次提交的任何人:

l 20

答案 10 :(得分:4)

由于另一个问题是(可能错误地如此?)被锁定,我将把它放在这里:

向作者展示其提交次数:

use

查找特定USERNAME的所有提交:

$variableonmethod=array('value1','value2');
PreAlumno::chunk(200, function($prealumnos) use (&$variableonmethod) {
    echo variableonmethod[0]; // prints `value1`
    variableonmethod[0] = 'Hola';
    echo variableonmethod[0]; // prints `Hola`
    foreach ($prealumnos as $pre) {
       //do something with variableonmethod
    }
});
echo variableonmethod[0]; // prints `Hola`

答案 11 :(得分:2)

如果使用GitHub:

  • 转到分支
  • 点击提交

它将以下列格式显示列表

branch_x: < comment> 
author_name committed 2 days ago
  • 查看个人作者的提交;单击 author_name ,您可以在那里看到该作者在该分支上的所有提交

答案 12 :(得分:0)

您可以使用=或“ space”。 例如,以下两个命令返回相同的结果

git log --author="Developer1"

git log --author "Developer1"

答案 13 :(得分:0)

我的情况:我正在使用源代码树,请按照以下步骤操作:

  1. 按下Engineer
  2. 更改下拉列表作者
  3. 输入名称“ Vinod Kumar”

enter image description here

答案 14 :(得分:0)

尽管有很多有用的答案。而只是添加另一种方法。您也可以使用

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

在这里,<Author Name>在当前分支下总共进行了5次提交。而您还可以使用--all在git信息库中的所有(所有分支)处强制执行搜索。

一个收获:git在内部尝试将输入<author name>与git数据库中作者的姓名和电子邮件相匹配。它是区分大小写的。