138

我正在使用 Git 和 gitk 的命令行版本。我想查看完整的版本树,而不仅仅是从当前签出的版本中可以访问的部分。是否可以?

4

5 回答 5

328

如果您碰巧没有可用的图形界面,您还可以在命令行上打印出提交图:

git log --oneline --graph --decorate --all

如果此命令抱怨无效选项 --oneline,请使用:

git log --pretty=oneline --graph --decorate --all
于 2011-03-19T10:30:40.080 回答
141
  1. 当我在只有终端的工作场所时,我使用:

    git log --oneline --graph --color --all --decorate

    在此处输入图像描述

  2. 当操作系统支持 GUI 时,我使用:

    gitk --all

    在此处输入图像描述

  3. 当我在家里的 Windows PC 中时,我使用自己的GitVersionTree

    在此处输入图像描述

于 2013-08-17T10:40:46.470 回答
87

您可以尝试以下方法:

gitk --all

您可以使用任何可以理解gitk的内容来判断要显示的内容,因此如果您只想要几个分支,您可以这样做:git rev-list

gitk master origin/master origin/experiment

...或更多异国情调的东西,例如:

gitk --simplify-by-decoration --all
于 2011-03-19T08:34:11.653 回答
25

同一个问题有一个很好的答案
将以下行添加到“~/.gitconfig”:

[alias]
lg1 = log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all
lg2 = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n''          %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all
lg = !"git lg1"
于 2015-01-28T16:41:55.987 回答
14

如果您不需要分支或标签名称:
git log --oneline --graph --all --no-decorate

如果您甚至不需要颜色(以避免 tty 颜色序列):
git log --oneline --graph --all --no-decorate --no-color

还有一个方便的别名(在 .gitconfig 中),让生活更轻松:

[alias]
  tree = log --oneline --graph --all --no-decorate

只有最后一个选项生效,因此甚至可以覆盖您的别名:

git tree --decorate
于 2019-08-30T07:25:01.740 回答