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

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

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

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


当前回答

对于那些使用VSCode文本编辑器的人,可以考虑D. Jayamanne编写的Git历史扩展:

其他回答

我99.999%的时间用gitlg来查看历史,0.001%用gitlog来查看历史。

我只是想分享两个可能有用的日志别名(从.gitconfig配置):

[Alias]
     lg = log --graph --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short
     hist = log --graph --full-history --all --pretty=format:'%Cred%h%Creset %ad %s %C(yellow)%d%Creset %C(bold blue)<%an>%Creset' --date=short

Git lg将看到当前的分支历史记录。 Git hist将看到整个分支历史。

我喜欢,用git日志,做:

 git log --graph --oneline --branches

(还有——all,用于查看远程分支)

与最新Git版本的配合:自1.6.3以来引入(2009年5月7日星期四)

“——pretty=<style>”选项到命令日志族现在可以拼写为“——format=<style>”。 此外,——format=%formatstring是——pretty=tformat:%formatstring的简写。 "——oneline"是"——pretty=oneline -abbrev-commit"的同义词。

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix
| | * 8183707 a first bug10 fix
| |/
| * e727105 a second evol for 2.0
| * 473d44e a main evol
|/
* b68c1f5 first evol, for making 1.0

你也可以限制日志显示的跨度(提交的数量):

PS D:\git\tests\finalRepo> git log --graph --oneline --branches --all -5
* 4919b68 a second bug10 fix
* 3469e13 a first bug10 fix
* dbcc7aa a first legacy evolution
| * 55aac85 another main evol
| | * 47e6ee1 a second bug10 fix

(只显示最后5次提交)


我不喜欢当前选择的解决方案是:

 git log --graph

它显示了太多的信息(当我只想看一个快速的摘要):

PS D:\git\tests\finalRepo> git log --graph
* commit 4919b681db93df82ead7ba6190eca6a49a9d82e7
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:42:20 2009 +0100
|
|     a second bug10 fix
|
* commit 3469e13f8d0fadeac5fcb6f388aca69497fd08a9
| Author: VonC <vonc@laposte.net>
| Date:   Sat Nov 14 13:41:50 2009 +0100
|
|     a first bug10 fix
|

Gitk很棒,但迫使我离开shell会话到另一个窗口,而快速显示最后n次提交通常就足够了。

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

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

git log --graph --decorate --oneline

我正在使用Visual Studio代码编辑器,我发现自己对mhutchie所做的Git Graph扩展非常满意。(我不是一个人,有100万用户的扩展!)

如果你碰巧喜欢这个编辑器,那么就去扩展选项卡(左边中间的格子),输入“Git Graph”并安装

要使用它,请转到Git控件选项卡并按查看Git图形按钮

看看GitKraken——一个跨平台的GUI,它以清晰的方式显示拓扑。

这里有一个关于一些高级功能的快速视频教程。

注:需注册。