在git中查看完整版本树

pet*_*ohn 108 git gitk

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

kni*_*ttl 267

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

git log --oneline --graph --decorate --all
Run Code Online (Sandbox Code Playgroud)

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

git log --pretty=oneline --graph --decorate --all
Run Code Online (Sandbox Code Playgroud)

  • `alias gl ='git log --oneline --graph --decorate --all'`.为什么输入超过需要;) (9认同)
  • 当我们有gitl时谁需要gitk!alias gitl ='git log --oneline --graph --decorate --all' (5认同)

che*_*sum 113

  1. 当我在我的工作地点只有终端时,我使用:

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

    在此输入图像描述

  2. 当OS支持GUI时,我使用:

    gitk --all

    在此输入图像描述

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

    在此输入图像描述

  • @rchrd 我会通过运行 `git config --global alias.ver "log --oneline --graph --color --all --decorate"` 将它们设置为别名,然后只需要输入 `git ver` 。 (2认同)

Mar*_*air 74

您可以尝试以下方法:

gitk --all
Run Code Online (Sandbox Code Playgroud)

您可以gitk使用任何git rev-list理解的东西来判断要显示的内容,因此如果您只想要几个分支,则可以执行以下操作:

gitk master origin/master origin/experiment
Run Code Online (Sandbox Code Playgroud)

...或更多奇特的东西,如:

gitk --simplify-by-decoration --all
Run Code Online (Sandbox Code Playgroud)


Dan*_*lev 21

对同一个问题有一个非常好的答案.
在"〜/ .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"
Run Code Online (Sandbox Code Playgroud)


cla*_*tfu 10

如果您不需要分支或标签名称:
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
Run Code Online (Sandbox Code Playgroud)

只有最后一个选项生效,所以甚至可以覆盖你的别名:
git tree --decorate