git graph 是 vs code 中零配置的分支可视化工具,直接渲染 git log --all --graph 结果;需在 .git 根目录打开、配置正确 git.path、勾选“show all branches”并手动刷新,才能完整显示本地/远程/已删分支的拓扑关系。

VS Code 里怎么用 Git Graph 看清分支关系?
Git Graph 是解决“分支太多看不清”的最直接方案。它不改 Git 行为,只把 git log --graph 的输出变成可交互的图谱,对多分支并行开发尤其有用。
安装后按 Ctrl+Shift+G(Windows/Linux)或 Cmd+Shift+G(macOS)就能打开视图。默认会加载当前仓库所有本地分支和远程跟踪分支,但不会自动刷新——你得手动点右上角的 Refresh 按钮,或者勾选 Auto Refresh(推荐开启)。
- 分支线颜色是随机生成的,不能自定义;但不同分支的合并点、分叉点一目了然
- 点击某个提交,右侧面板会显示
commit hash、作者、时间、完整消息,以及Files changed列表——点文件名就能对比差异 - 右键分支名可直接
Checkout、Create Branch或Delete Branch,但注意:Delete Branch不会删远程分支,只是本地引用 - 如果分支太多导致图太密,可以右键选择
Hide Branch临时收起不关心的分支,避免视觉干扰
Git Worktree Manager 插件真能省掉命令行吗?
能,但只限于“管理已有工作树”,不是“替代所有 Git 操作”。它本质是把 git worktree list 和 git worktree remove 封装成 UI 操作,创建新工作树仍需命令行或 GitLens 配合。
插件启动后,在源代码管理视图底部会出现一个 Worktrees 标签页。列表里显示每个工作树的路径、关联分支、是否已锁定(locked)。关键细节:
- 点击某一行,插件会尝试在新窗口打开该路径——前提是 VS Code 还没打开过这个目录;如果已打开,它不会切换,也不会报错,只是静默失败
-
Remove操作会调用git worktree remove <path></path>,但不会自动清理残留的.git/worktrees/<name></name>目录,偶尔会卡住,此时需手动rm -rf对应子目录 - 不支持通过 UI 创建带新分支的工作树(即
git worktree add -b),必须先git checkout -b再add,否则插件识别不到分支 - 如果你用的是 WSL 或远程 SSH 开发环境,插件可能无法正确解析路径,表现为列表为空——这是已知限制,目前无绕过方案
为什么 Peacock + Worktree 是防误操作刚需?
多个工作树目录在文件系统里是平级文件夹,VS Code 打开后标题栏只显示文件夹名,不显示分支名。靠人眼分辨 myproj-main 和 myproj-feature-x 极易出错,尤其疲劳时。
使用 gh project CLI 管理 GitHub Projects v2。在代理需要列出待办事项、设置项目字段(如状态、迭代、优先级等)时使用此技能。
Peacock 插件的作用不是装饰,而是强制视觉锚定。配置方式很简单:打开任一工作树目录 → 按 Ctrl+Shift+P → 输入 Peacock: Change Color → 选一种颜色(比如 red 代表 hotfix,green 代表 feature)→ 保存。下次打开这个目录,整个 VS Code 窗口边框、状态栏、活动标签都会染色。
- 颜色设置保存在该目录下的
.vscode/settings.json里,不会污染其他工作树 - 不要用太接近的颜色(比如
blue和indigo),实测在高分辨率屏上几乎无法区分 - 如果团队协作,可以把常用配色方案写进项目 README,比如 “hotfix: #ff4757, release: #2ed573, main: #3742fa”
- Peacock 不影响 Git 操作,也不增加任何构建开销,纯前端渲染,性能无感知
Jenkins List Git Branches 插件适合什么场景?
它只适合“需要人工触发构建,并且每次都要选分支”的 CI 场景,比如预发布验证、手动回归测试、演示环境部署。不适合全自动流水线(如 push 触发),因为它的参数化构建依赖用户主动点击 Build with Parameters。
配置时最关键的三个坑:
-
Repository URL必须填完整 HTTPS 或 SSH 地址(如https://gitee.com/xxx/yyy.git),不能只写域名或相对路径,否则插件连不上 -
Branches to list默认正则.*会拉取所有分支,包括gh-pages、docs这类非构建分支,建议改成^(main|dev|feature/.*|hotfix/.*)$ - 如果 Jenkins 节点没装 Git 或 PATH 不对,插件会报
Cannot run program "git",而不是更具体的错误,得去节点机器上手动执行git --version验证 - 插件获取分支列表走的是 Jenkins master 的网络环境,不是 agent;所以即使 agent 能访问 Gitee/GitLab,master 不能也会失败
真正容易被忽略的是:它不处理分支删除后的缓存。比如某天你删掉了 feature/old,下次构建参数下拉菜单里仍可能看到它——得手动点 Reload 按钮,或者等插件后台定时刷新(默认 1 小时)。










