Git Graph扩展是最稳定可靠的Git可视化方案,不依赖Webview、支持右键操作与拖拽排序,需启用“Show All Branches”才能完整显示分支合并关系,merge commit以菱形节点呈现且parent顺序固定,大仓库应关闭Auto Refresh并限制提交数量。

Git Graph 扩展是目前最稳定可靠的可视化方案
直接装 Git Graph(作者:mhutchie)——它不依赖 Webview 渲染,不卡顿,支持右键操作、拖拽排序、过滤搜索,且能准确还原 Git 的 DAG 结构。其他如 GitLens 虽带图谱功能,但默认只显示线性历史,分支合并点常被折叠;Git History 已停止维护,加载大仓库易崩溃。
安装后必须手动启用“Show All Branches”才能看到完整分支走向
默认只显示当前分支及其直系祖先,合并进来的其他分支(比如 feature/login 合入 main 后就消失)不会自动展开。打开图形视图后,点击右上角齿轮图标 → 勾选 Show All Branches,再点 Refresh。否则你会误以为“分支没合并成功”或“提交丢失”。
Commit 提交树里 merge commit 显示为菱形节点,但需注意 parent 顺序
Git Graph 把第一个 parent(通常是当前分支)画在左,第二个 parent(被合并分支)画在右。如果你用的是 git merge --no-ff feature/x,这个菱形节点的右向箭头就是 feature/x 的最新提交;但若用了 git merge -s ours 或 rebase 后的 fast-forward 合并,则不会生成菱形节点——此时图中只有一条直线,不代表没合并,只是 Git 记录方式不同。
- 想强制保留合并结构?始终加
--no-ff - 右键节点可
View Commit Details查看实际 parent hash 列表 - 悬空 commit(dangling commit)不会出现在图中,需用
git fsck --lost-found单独排查
大仓库首次加载慢?关掉“Auto Refresh” + 手动限深
超过 10k 提交的仓库,开启自动刷新会让 VSCode 主进程卡住 3–5 秒。进入 Git Graph 设置 → 关闭 Auto Refresh,改用右上角 Refresh 按钮按需更新。更关键的是,在图形界面顶部输入框里加限制参数:
--all --simplify-by-decoration --date-order -n 200
这会只拉最近 200 条有 tag/branch 标记的提交,跳过大量中间 merge,图立刻变干净,且不丢分支拓扑关系。
Git 分支图不是「画出来好看就行」,它得和git log --graph --all --simplify-by-decoration 输出严格一致。很多人调了半天配色和布局,却漏掉 --all 或 --simplify-by-decoration 这两个底层开关,结果图看着对,其实缺了关键分支指针。


















