【发布时间】:2011-06-13 17:31:05
【问题描述】:
我想使用 gitk 查看所有提交,除了给定作者的提交。类似于以下内容:
gitk --author=!joe
这可能吗?
【问题讨论】:
-
我试过这里链接的方法没有成功:stackoverflow.com/questions/3448000/…
标签: git version-control history author gitk
我想使用 gitk 查看所有提交,除了给定作者的提交。类似于以下内容:
gitk --author=!joe
这可能吗?
【问题讨论】:
标签: git version-control history author gitk
从命令行:
gitk --perl-regexp --author='^(?!joe)'
排除多个作者的提交:
gitk --perl-regexp --author='^(?!jack|jill)'
解释:(?!whatever) 是一个(perl 风格的)前瞻正则表达式:它匹配一个没有被whatever 跟随的位置。我们通过“字符串开头”正则表达式 ^ 将其锚定到 Author 字段的开头。
或者运行gitk --perl-regexp,然后在gitk菜单中,选择View -> New View(或简称Shift+F4),在“Author”字段中写入^(?!joe)。
如果你不想总是输入gitk --perl-regexp,你可以通过运行设置git全局使用perl正则表达式
git config --global grep.patternType perl
【讨论】:
我不认为有一个非常简单的方法来做到这一点--
如果你有 perl 或类似的东西,你可以拼凑出一个解决方案:
获取您要排除的提交列表并将它们放在哈希中: git rev-list [refs] --author="[author pattern]"
获取要显示的提交列表:git rev-list [refs]
从您要显示的提交中减去哈希中的项目
显示你想要显示的提交:gitk --no-walk [减法输出]
你可以很容易地用 perl/python/ruby 写一些东西来做 1-3,然后就做
gitk --no-walk $(drop-author.pl [refs] [author-pattern])
【讨论】:
--no-walk 标志