24

我想使用 gitk 比较 2 个分支,而没有其他分支历史的混乱。
我可以通过 gui 实现这一点: View > New view > Branches & tags: v0.8.x v0.9.x
我尝试了以下,但它仍然显示所有分支:gitk --branches v0.8.x v0.9.x
什么是正确的语法?

4

2 回答 2

34

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

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

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


编辑:

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

gitk --branches=fix/*

将向您显示与给定 shell glob 匹配的所有分支。

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

于 2014-06-02T11:06:49.557 回答
1

我无法使--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

于 2021-06-03T18:43:58.660 回答