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。

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


当前回答

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

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

使用此选项将其添加为别名

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

你用

git tree

其他回答

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

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

关于你提到的文章,我会用Pod的答案:特别手工输出。


Jakub narabbski在评论中提到tig,一个基于ncurses的git文本模式界面。查看他们的发布。 早在2007年,它就添加了——graph选项。

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

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

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

git tree

把它放在你的~/。不需要编辑它,你可以这样做:

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

(如果你不使用——global,它会把它放在当前回购的.git/config中。)

tig

如果你想要一个交互式树,你可以使用tig。可以在OSX上通过brew安装,在Linux上通过apt-get安装。

brew install tig
tig

这就是你得到的结果:

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

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

使用此选项将其添加为别名

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

你用

git tree

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

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

而不是创建一个别名。

最好把命令记在脑子里,这样你就能记住了 换机器时不要依赖别名。