5

我想使用 gitk 查看所有提交,除了给定作者的提交。类似于以下内容:

gitk --author=!joe

这可能吗?

4

2 回答 2

9

从命令行:

gitk --perl-regexp --author='^(?!joe)'

要排除多个作者的提交:

gitk --perl-regexp --author='^(?!jack|jill)'

解释:(?!whatever)是一个(perl 风格的)前瞻正则表达式:它匹配一个不跟随的位置whatever。我们通过“字符串开头”正则表达式将其锚定到 Author 字段的开头^

或者运行gitk --perl-regexp,然后在 gitk 菜单中,选择 View -> New View(或简称 Shift+F4)并写入^(?!joe)“Author”字段。

如果您不想总是输入gitk --perl-regexp,您可以通过运行设置 git 以全局使用 perl 正则表达式

git config --global grep.patternType perl

于 2016-09-30T14:46:33.953 回答
1

我不认为有一个非常简单的方法来做到这一点——

如果你有 perl 或类似的东西,你可以拼凑出一个解决方案:

  1. 获取要排除的提交列表并将它们放在哈希中: git rev-list [refs] --author="[author pattern]"

  2. 获取要显示的提交列表: git rev-list [refs]

  3. 从您要显示的提交中减去哈希中的项目

  4. 显示你想要显示的提交: gitk --no-walk [减法输出]

你可以很容易地在 perl/python/ruby 中写一些东西来做 1-3,然后就做

gitk --no-walk $(drop-author.pl [refs] [author-pattern])

于 2011-06-13T19:55:29.147 回答