n git分支之间的关系

时间:2011-03-14 13:08:19

标签: git branch git-branch

如果我有n个git分支,如何轻松显示这些分支之间的关系?

基本上我有兴趣看到我的存储库中所有分支的子集的树。然而,我对所有中间提交都不感兴趣。

例如:我的存储库看起来像这样:

     o---o--o A
    /      /
o--o--o--o--o--o B
 \  \        \
  \  o--o C   \
   \     \     \
    o--o--o--o--o--o D

但可能更复杂。现在我想看看分支A,C和D之间的关系。有些东西:

     o A
    /
o--o--o
   \   \
    o---o C
         \
          o--o D

或同等的概述。这有可能,怎么样? (图形工具就可以了。)

解决方案

根据Antoine Pelisses的回答,下面的行似乎(几乎)完全符合我的要求:

git log --graph --decorate --oneline --simplify-by-decoration A B C

更新

Mark Longair在下面的回答中指出gitk接受与git rev-list相同的参数,因此可以这样做:

gitk --simplify-by-decoration A C D

2 个答案:

答案 0 :(得分:43)

你可以尝试一下:

git log --graph --all --decorate --simplify-by-decoration

它只会显示分支头或标记的提交。

答案 1 :(得分:17)

我会用:

gitk A C D

...可能还有其他git GUI可以生成更漂亮的提交图表,但我总是发现gitk可以用于此目的。所有分支和标签都标有“伦敦地铁”式表示:

A screenshot of gitk showing several merges and branches http://mythic-beasts.com/~mark/gitk-screenshot.png


您还可以--simplify-by-decoration使用gitk选项,因为它了解git rev-list所做的所有参数,例如:

gitk --simplify-by-decoration A C D

A screenshot of gitk with the --simplify-by-decoration option