协慌网

登录 贡献 社区

漂亮的 git 分支图

我已经看到一些书籍和文章有一些非常漂亮的 git 分支和提交图。如何制作 git 历史的高质量可打印图像?

答案

更新:这个答案得到了比应有的更多的关注。它最初发布是因为我认为图形看起来不错,它们可以在 Illustrator 中用于出版物 - 并且没有更好的解决方案。但是现在存在更多适用于这个 Q 的答案,比如fracz 's, Jubobs ' 或Harry Lee 's!请尽快投票!

更新 2:我已经在 git问题中向可视化分支拓扑发布了这个答案的改进版本,因为它在那里更合适。该版本包含 lg3 ,它显示作者和提交者信息,所以你真的应该检查出来。留下这个答案的历史(和代表,我会承认)的原因,虽然我真的很想删除它。

:我通常在~/.gitconfig文件中抛出两个别名:

[alias]
lg1 = log --graph --abbrev-commit --decorate --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 lg / git lg1看起来像这样:
git lg1

git lg2看起来像这样:
git lg2

这里的许多答案都很棒,但对于那些只需要一个简单的一行到点答案而不必设置别名或任何额外内容的人来说,这里是:

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

不是每个人都会一直在做一个git log ,但是当你需要它时,请记住:

一只狗 ”= git log - 一个 ll - d ecorate - o neline - g raph

在此输入图像描述

对于文本输出,您可以尝试:

git log --graph --abbrev-commit --decorate --date=relative --all

要么:

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

或: 这是绘制 DAG 图的 graphviz 别名。

我个人使用gitxgitk --allgitnub