gitk只显示指定的分支

时间:2014-06-02 10:59:14

标签: git gitk

我想使用gitk比较2个分支,而不会出现其他分支历史的混乱 我可以通过gui实现这一点:查看>新视图>分支机构标签:v0.8.x v0.9.x
我尝试了以下内容,但仍显示所有分支:gitk --branches v0.8.x v0.9.x
什么是正确的语法?

2 个答案:

答案 0 :(得分:16)

gitk v0.8.x v0.9.x为我做了。

但是,仔细查看显示的分支会显示实际上没有显示给定的分支。此外,还会显示指向两个分支历史记录中的提交的所有分支。

因此,该命令显示指定的所有分支,包括那些指定分支的直接祖先的分支。


修改:

如果要查看所有分支,例如名为--branches=的分支,将使用fix/*开关:

gitk --branches=fix/*

会显示与给定shell glob匹配的所有分支。

另请参阅gitk的文档以获得更深入的解释。

答案 1 :(得分:0)

我无法使 --branches[=<pattern>] 参数起作用(对于任何 shell glob,尤其是对于多个 glob)。幸运的是,您可以使用一大堆 Unix 管道来完成相同的工作。

git branch -r | egrep "origin/(testing|prod|dev)" | xargs | tr '\n' ' ' | xargs -I {} bash -c 'gitk {}'

细分:

  • git branch -r -- 显示所有远程分支

  • egrep "origin/(testing|prod|dev)" -- 过滤以 testing*prod*dev* 开头的内容。

  • 第一个 xargs -- 简单的修剪方法

  • tr '\n' ' ' -- 将所有结果合并为一个空格分隔的行

  • xargs -I {} bash -c 'gitk {}' -- 将该行通过管道导入 gitk