517

Killswitchcollective.com 的旧文章,2009 年 6 月 30 日,具有以下输入和输出

git co master
git merge [your_branch]
git push

upstream    A-B-C-D-E            A-B-C-D-E-F-G
                 \        ---->               \
your branch       C-D-E                        G

我很感兴趣如何在不使用 OS/X 中的 Gitk 或 Gitx 的情况下在终端中获得提交的树状视图。

如何在终端中获得提交的树状视图?

4

6 回答 6

912

如何在终端中获得提交的树状视图?

git log --graph --oneline --all

是一个好的开始。

你可能会收到一些奇怪的信件。它们是颜色和结构的 ASCII 码。要解决此问题,请将以下内容添加到您的.bashrc:

export LESS="-R"

这样您就不需要使用 Tig 的 ASCII 过滤器了

git log --graph --pretty=oneline --abbrev-commit | tig   // Masi needed this 

来自 Git-ready的文章基于文本的图表包含其他选项:

git log --graph --pretty=oneline --abbrev-commit

git 日志图

关于你提到的文章,我会选择Pod 的回答:ad-hoc hand-made output。


Jakub Narębski评论,一个基于 ncurses 的 git 文本模式界面。查看他们的版本
它在 2007 年增加了一个--graph选项

于 2009-06-30T15:41:57.367 回答
343

一个解决方案是在您的中创建一个别名.gitconfig并轻松调用它:

[alias]
    tree = log --graph --decorate --pretty=oneline --abbrev-commit

当您下次调用它时,您将使用:

git tree

要将其放入您的 ~/.gitconfig 而无需对其进行编辑,您可以执行以下操作:

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit"  

(如果你不使用 --global 它将把它放在你当前 repo 的 .git/config 中。)

于 2011-03-18T16:02:05.250 回答
136
git log --oneline --decorate --all --graph

包含分支名称的可视化树。

使用它来添加它作为别名

git config --global alias.tree "log --oneline --decorate --all --graph"

你用它来称呼它

git tree

Git 树

于 2012-12-03T15:41:45.600 回答
65

tig

如果你想要一个交互式树,你可以使用tig. 它可以brew在 OSX 和apt-getLinux 上安装。

brew install tig
tig

这就是你得到的:

在此处输入图像描述

于 2014-12-16T22:31:04.493 回答
7

我建议任何人写下完整的命令

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

而不是创建别名。

将命令记在脑海中是件好事,这样您就可以记住它,即当您更换机器时不要依赖别名。

于 2019-03-11T13:01:44.177 回答
5

保持命令简短会使它们更容易记住:

git log --graph --oneline
于 2016-11-19T21:30:54.100 回答