git graph默认只显示当前分支直系祖先,需手动启用show all branches、show remote branches及toggle reflog并刷新,才能完整呈现本地分支、远程分支及最近30天内被删分支的拓扑结构。

Git Graph 默认不显示完整分支拓扑,不是插件坏了,而是它默认只画当前分支的直系祖先链——合并进来的 feature 分支、远程分支、甚至刚删掉的本地分支,全都不见。必须手动开几个开关,图才“活”过来。
Git Graph 打不开或图是空的?先查仓库根目录和 git.path
90% 的“打不开”问题,根源在 VSCode 根本没识别到 Git 仓库。Git Graph 只在 .git 所在的根目录下工作,子文件夹里点开视图会静默失败。
- 立刻验证:按
Ctrl+Shift+P→ 输入Git: Show Git Output,如果输出里有fatal: not a git repository,说明路径错了 - 最快修复:右键资源管理器中的项目文件夹 →
Reopen Folder as Root - 另一个硬性依赖:
git.path必须指向真实可执行的 Git 二进制文件,比如/usr/bin/git(macOS/Linux)或C:\Program Files\Git\bin\git.exe(Windows);配错会导致所有 Git 操作瘫痪,图自然出不来
为什么分支图只有一条直线?必须勾选 Show All Branches
刚把 feature/login 合并进 main,图里却只剩一条竖线——这不是没合并成功,是 Git Graph 默认隐藏所有非当前分支的指针。merge commit 节点存在,但它的右 parent(即被合并的分支)根本没画出来。
GInstall OneClick — 一键安装 GitHub 项目:规划、克隆、安装 Node 依赖、运行开发脚本。适用于想要获取 GitHubNode.js 项目的用户。
- 打开 Git Graph 视图(
Ctrl+Shift+G) - 点右上角齿轮图标 → 勾选
Show All Branches - 点
Refresh按钮强制重载 - 此时所有本地分支都会以带颜色的圆点形式出现,箭头连接关系也还原了真实 DAG 结构
想看 origin/develop 或已删分支?还得开 Remote Branches 和 Reflog
默认视图连 origin/develop 都不加载,更别说被 git branch -d 删掉的分支——它们不会自动消失,但也不会自动浮现。
- 要显示远程分支:点右上角
⋯→ 勾选Show Remote Branches,再点Refresh - 要找回刚删的本地分支:点
⋯→Toggle Reflog,它能列出最近 30 天内被删除的分支头(reflog 记录) - 某些自建 Git 服务器(如私有 GitLab)可能禁用
ls-remote,导致远程分支加载失败;可在终端手动运行git ls-remote --heads origin验证连通性
大仓库卡顿、图太密看不清?关 Auto Refresh + 加限制参数
超过 10k 提交的仓库,开启 Auto Refresh 会让 VSCode 主进程卡住几秒;而默认拉全量提交,图中全是密密麻麻的 merge 线,关键分支走向反而被淹没。
- 进 Git Graph 设置 → 关闭
Auto Refresh,改用手动Refresh - 在图形界面顶部输入框里粘贴参数:
--all --simplify-by-decoration --date-order -n 200 - 这会只加载最近 200 条「有 branch/tag 标记」的提交,跳过大量中间 merge,图立刻变干净,且不丢分支拓扑主干
- 注意:
--simplify-by-decoration是关键,漏掉它,图看着有分支,其实缺了关键指针(和git log --graph --all --simplify-by-decoration输出不一致)
真正容易被忽略的,是 --simplify-by-decoration 这个底层开关——它决定了 Git Graph 是否只保留「有分支/标签指向」的提交节点。不加它,图里堆满无意义的中间 merge,分支线反而被稀释;加了它,图才真正反映团队实际的发布与协作节奏。这点连很多用了两年 Git Graph 的人也没调过。










