【问题标题】:Can gitk show all commits EXCEPT those by a given author?gitk 可以显示除给定作者之外的所有提交吗?
【发布时间】:2011-06-13 17:31:05
【问题描述】:

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

gitk --author=!joe

这可能吗?

【问题讨论】:

标签: git version-control history author gitk


【解决方案1】:

从命令行:

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

【讨论】:

  • 这对我不起作用。我在 Windows 机器上试过这个。
  • @Josh 你说得对,我没有意识到我有一个 perl 类型正则表达式的全局设置,这是它工作所必需的。我编辑了答案。
【解决方案2】:

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

如果你有 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])

【讨论】:

  • 这不起作用,因为 gitk 设置为忽略 --no-walk 标志
猜你喜欢
  • 2019-09-09
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
相关资源
最近更新 更多