使用Git可视化工具展示分支拓扑结构

1087

我在自己的机器上独立使用Git,发现很难保持对所有分支和提交的心理模型。我知道可以使用git log查看从当前位置开始的提交历史记录,但是否有一种方法可以查看整个分支拓扑结构,类似于这些似乎被用于解释分支的ASCII地图?

      .-A---M---N---O---P
     /     /   /   /   /
    I     B   C   D   E
     \   /   /   /   /
      `-------------'

我觉得如果有人想要接手我的代码库,他们可能会很难理解其中的细节。

我想我受到了 AccuRev 的 stream browser 的影响...


无法在终端中显示Git树 - Leif Gruenwoldt
1
@leif81,对我来说是半重复。@Masi在他的问题中明确排除了gitk。 - Benjol
这个回答解决了你的问题吗?Pretty git branch graphs - Gonçalo Peres
33个回答

2

我曾尝试使用 --simplify-by-decoration,但是我的所有合并都没有显示出来。所以我选择了删除标题中没有“\”和“/”符号的行,同时始终保留带有“(”表示分支的行。在显示分支历史时,我通常不关心提交注释,因此也删除了它们。最终,我得到了以下的shell别名。

gbh () { 
    git log --graph --oneline --decorate "$@" | grep '^[^0-9a-f]*[\\/][^0-9a-f]*\( [0-9a-f]\|$\)\|^[^0-9a-f]*[0-9a-f]*\ (' | sed -e 's/).*/)/'
}

1

对于那些已经在VIM工作的人,gv.vim可能会很有趣。这就是我直接从VIM中使用的方法,还可以方便地浏览提交历史并检查特定的更改。

这是直接从gv.vim的Github页面截图:

enter image description here

具体的样式取决于所使用的颜色主题。

1
Git的官方网站列出了一些第三方平台特定的GUI工具。打开Linux平台上的Git GUI工具
我已经在Linux平台上使用过gitgGitKraken。两者都很适合理解提交树。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接