在 git 中查看完整版本树

我使用的是 Git 和 gitk 的命令行版本。我希望看到完整的版本树,而不仅仅是从当前签出版本可到达的部分。有可能吗?

135456 次浏览

你可以尝试以下方法:

gitk --all

你可以告诉 gitk使用 git rev-list明白显示什么,所以如果你只想要一些分支,你可以这样做:

gitk master origin/master origin/experiment

或者更奇特的东西,比如:

gitk --simplify-by-decoration --all

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

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

如果此命令使用无效的选项—— oneline,请使用:

git log --pretty=oneline --graph --decorate --all
  1. 当我在工作的地方只有终端时,我使用:

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

    enter image description here

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

    gitk --all

    enter image description here

  3. 当我在家用 Windows 电脑时,我使用我自己的 GitVersionTree

    enter image description here

对于同一个问题有一个 非常好的回答
向“ ~/. 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"

如果不需要分支或标记名称:
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