使用gitlog时,如何按用户进行筛选,以便只看到该用户的提交?


当前回答

一种可能的替代方法是使用名为mergestat的工具,该工具允许您针对repo中的提交历史运行SQL查询(除其他外)。

mergestat "SELECT * FROM commits WHERE author_name LIKE '%Jon%'"

它有点冗长,但可以提供灵活性,以通用的方式具体查找您要查找的内容。

例如,过滤掉合并提交,仅显示过去一年中特定作者的提交:

mergestat "SELECT * FROM commits WHERE author_name LIKE '%Jon%' WHERE author_when > DATE('now', '-1 year') AND parents < 2"

完整披露:我是项目的维护者:)

其他回答

在github上还有一个秘密方法。。。

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

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

用法

$ 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
git log --author="that user"

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

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

如果您使用IntelliJ,您可以转到

View -> Tool Windows -> Git

选择“日志”并单击“用户:全部”

然后键入作者的姓名,它将显示该作者的每一次提交