Git Graph需在.git根目录打开、配置正确git.path、启用Show All Branches才正常显示分支图;默认不加载远程分支和已删分支,须手动开启对应选项并刷新。

Git Graph 是目前 VSCode 中唯一能准确还原 Git DAG 结构、不卡顿、支持右键操作的图形化方案,装完不配置等于白装。
Git Graph 安装后打不开?先确认三件事
插件装完没反应,90% 是环境没对齐,不是插件问题:
- 当前打开的文件夹必须是
.git所在根目录——子文件夹里点开 Git Graph 会静默失败;右键资源管理器 → Reopen Folder as Root 最快验证 - VSCode 设置里
git.path必须指向真实可用的 Git 可执行文件(比如/usr/bin/git或C:\Program Files\Git\bin\git.exe),否则所有 Git 操作都瘫痪 - 运行命令面板
Git: Show Git Output,看输出里有没有fatal: not a git repository—— 有就说明仓库根本没被识别
分支图里看不到 feature 分支?默认只显示当前分支直系祖先
刚合并完 feature/login 到 main,图里却只剩一条直线?不是没合并,是 Git Graph 默认不展开其他分支:
- 点击图形视图右上角齿轮图标 → 勾选
Show All Branches,再点Refresh - 如果要查远程分支(如
origin/develop),还得额外勾选Show Remote Branches - 删掉的分支没立刻消失?点右上角
⋯→Toggle Reflog,能找回最近 30 天内被删的分支头
merge commit 显示为菱形,但 parent 顺序影响理解
图中菱形节点 ≠ 合并成功,它只反映 Git 的 parent 记录方式:
- 左向箭头是第一个 parent(通常是当前分支 HEAD),右向箭头是第二个 parent(被合并分支)
-
git merge --no-ff feature/x一定会生成菱形;但git merge -s ours或 fast-forward 合并不会——图里只有一条线,不代表没合并 - 不确定 parent 是谁?右键该菱形节点 →
View Commit Details,直接看原始parenthash 列表 - 悬空提交(
dangling commit)不会出现在图中,需手动跑git fsck --lost-found排查
大仓库加载慢、卡顿?别硬等,关 Auto Refresh + 限深拉取
超过 10k 提交的仓库,开启 Auto Refresh 会让 VSCode 主进程卡死 3–5 秒,且图越画越乱:
- 进 Git Graph 设置 → 关掉
Auto Refresh,改用右上角手动Refresh - 在图形界面顶部输入框里加参数:
--all --simplify-by-decoration --date-order -n 200 - 这个组合只拉最近 200 条带 branch/tag 标记的提交,跳过大量中间 merge,拓扑关系不丢,图立刻干净
- 注意:
--all和--simplify-by-decoration缺一不可,漏掉一个,分支指针就可能“隐身”
Git Graph 的图不是美化工具,它本质是 git log --graph --all --simplify-by-decoration 的可视化映射。很多人调配色、改布局花了半天,却没碰这两个底层开关,结果图看着顺眼,实际漏了关键分支——这才是最常被忽略的硬伤。


















