如何画出漂亮的 Git 分支图

命令行画分支图:git log --graph --oneline --all --decorate 是最常用的组合,可配置 git lg 别名。GUI 工具:GitKraken、Sourcetree、VS Code GitLens/Git Graph 插件效果更好。

最佳实践
Git 分支协作与合并示意

命令行经典组合:git log --graph --oneline --all --decorate——ASCII 分支线、每提交一行、带分支/标签标注。配个别名 git lg 随时可用。要更漂亮的交互式图形,用 GitKraken、Sourcetree 或 VS Code 的 Git Graph 插件。

命令行方案

git log --graph --oneline --all --decorate
  • --graph:左侧画分支合并线;
  • --oneline:每提交一行;
  • --all:所有分支而不只是当前;
  • --decorate:显示分支名和标签。

配置别名:

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

加分项:带作者和相对时间

git log --graph --abbrev-commit --decorate   --format=format:'%C(yellow)%h%C(reset) %C(green)(%ar)%C(reset) %s %C(blue)<%an>%C(reset)' --all

GUI 工具

  • VS Code Git Graph 插件:免费、交互式、点提交看 diff;
  • GitKraken:跨平台,图形美观,团队协作功能强;
  • JetBrains 系 IDE:内置 Git 工具窗的 log 图就很好用;
  • gitk:Git 自带,丑但无需安装。

常见问题(FAQ)

Q:图太大看不过来?

加范围过滤:git lg --since="2 weeks ago"、git lg main feature-x(只看这两个分支)、--max-count=30。

Q:能导出成图片做文档吗?

命令行输出截图即可;正式文档用 mermaid 的 gitGraph 语法手绘示意图(嵌入 Markdown,GitHub 原生渲染)。

Q:为什么有的提交在图里看不到?

--all 只含分支和标签可达的提交。游离的提交(如 rebase 前的旧历史)要用 git reflog 找。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台