无法在终端中显示Git树

Léo*_* 준영 403 git terminal console tree revision-history

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
Run Code Online (Sandbox Code Playgroud)

我感兴趣的是如何在终端中获得提交树的视图,而不使用OS/X中的Gitk或Gitx.

你怎么能在终端获得树状的提交视图?

Von*_*onC 732

你怎么能在终端获得树状的提交视图?

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

是一个好的开始.

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

export LESS="-R"
Run Code Online (Sandbox Code Playgroud)

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

git log --graph --pretty=oneline --abbrev-commit | tig   // Masi needed this 
Run Code Online (Sandbox Code Playgroud)

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

git log --graph --pretty=oneline --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

git log graph

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


的JakubNarębski提到在评论 TIG,一个基于ncurses的文本模式界面饭桶.查看他们的发布.
它在2007年增加了一个--graph选项.

  • git(使用ncurses)还有'tig',文本模式界面,在git-log的'--graph'选项之前,终端中有图形历史视图. (9认同)
  • 我发现在这种显示器上`--decorate`也是必不可少的-它在缩写提交名的旁边显示了引用名(分支,远程和本地)。 (2认同)

Mar*_*ayi 300

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

[alias]
    tree = log --graph --decorate --pretty=oneline --abbrev-commit
Run Code Online (Sandbox Code Playgroud)

当你下次打电话时,你将使用:

git tree
Run Code Online (Sandbox Code Playgroud)

要将它放在〜/ .gitconfig中而不必编辑它,你可以这样做:

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit"  
Run Code Online (Sandbox Code Playgroud)

(如果你不使用--global,它会将它放在你当前仓库的.git/config中.)

  • 这怎么不是默认别名?我想这会让 Git 的 CLI 使用起来稍微不那么令人恼火,但我们不能这样…… (2认同)

Seb*_*ten 116

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

包含分支名称的可视树.

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

git config --global alias.tree "log --oneline --decorate --all --graph"
Run Code Online (Sandbox Code Playgroud)

你打电话给它

git tree
Run Code Online (Sandbox Code Playgroud)

Git Tree

  • 很不错,这个。我将它与 [here](/sf/answers/2664401351/) 中描述的 `less -S` 结合使用,以防止包装的行混淆树。 (2认同)

Moh*_*sen 53

tig

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

brew install tig
tig
Run Code Online (Sandbox Code Playgroud)

这就是你得到的:

在此输入图像描述


Sax*_*ist 8

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

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

而不是创建别名。

最好将命令记入您的脑海中,这样您就可以记住它,即在更换机器时不依赖于别名。

  • 它实际上是“git log --all --decorate --oneline --graph”,位于助记符“git log a dog”之后;) (16认同)

JSO*_*C11 5

保持简短的命令将使其更容易记住:

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