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