我在自己的机器上单独使用Git,我发现很难维护所有分支和提交的心理模型。我知道我可以通过git日志查看提交历史,但是有没有一种方法可以查看整个分支地形,就像这些ASCII映射一样,似乎到处都在用它来解释分支?

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

感觉就像有人来找我的存储库时,很难弄清楚到底发生了什么。

我猜我是受到了AccuRev的流媒体浏览器的影响…


当前回答

我发现全局图很有用。

它使用dot/Graphviz创建了漂亮的2D图形,而不是gitk和朋友生成的相当线性的“一维”视图。使用-i选项,它显示分支点和合并提交,但省略了中间的所有内容。

其他回答

使用git log——graph或gitk。(两者都接受——all,这将显示所有分支,而不仅仅是当前的分支。)

对于分支名称和紧凑视图,尝试:

git log --graph --decorate --oneline

我在~/中有这个git日志别名。查看图表历史记录:

[alias]
l = log --all --graph --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'

别名设置好后,git l将显示如下内容:

在Git 2.12+中,您甚至可以使用日志自定义图形的线条颜色。graphColors配置选项。

至于日志的格式,它类似于——oneline,只是增加了作者名称(关于.mailmap)和相对作者日期。注意%C(auto)语法,它告诉Git使用默认的颜色来提交哈希,等等,在Git >= 1.8.3中是支持的。

对于那些在VIM工作的人,请参阅gv。Vim可能很有趣。这是我直接从VIM中使用的,还可以方便地浏览提交历史记录并检查特定的更改。

这是来自全球之声的截图。vim的Github页面:

具体的风格取决于所使用的颜色主题。

我发现全局图很有用。

它使用dot/Graphviz创建了漂亮的2D图形,而不是gitk和朋友生成的相当线性的“一维”视图。使用-i选项,它显示分支点和合并提交,但省略了中间的所有内容。

Git的官方网站使用了一些特定于第三方平台的GUI工具。为Linux平台打开Git GUI工具。

我已经在Linux平台上使用了gitg和GitKraken。两者都有助于理解提交树。