VSCode不支持一键合并多个独立进程窗口,本质是改用多根工作区(.code-workspace)统一加载各仓库;需先确认任务管理器中存在多个Code.exe/Electron进程,再通过Add Folder to Workspace添加仓库并保存工作区文件固化布局。

VSCode没有“合并窗口”功能,只有“合并工作区”操作
直接说结论:VSCode 本身不支持把多个独立进程的窗口(如任务管理器里多个 Code.exe 或 Electron 进程)一键“缝合”成一个窗口。所谓“合并多个仓库窗口”,本质是放弃多窗口模式,改用多根工作区(multi-root workspace)在一个窗口里加载所有仓库。这不是快捷键能解决的问题,而是组织方式的切换。
先确认你真有多个窗口进程
很多人误以为标签页太多=需要合并窗口,其实只是标签管理问题。真正要“合并”的,是任务管理器里真实存在的多个 VSCode 进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看是否有多个Code.exe - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否 >1 - 如果只有 1 个进程,但标签栏拥挤 → 应该用分组 +
Ctrl+K Ctrl+W关闭未保存标签 + 保存工作区,而不是找“合并”
正确做法:创建 .code-workspace 文件统一加载
这是官方唯一推荐、稳定且可复现的方式。它让多个 Git 仓库共存于单个窗口,并各自保持独立的 Git 状态、设置和扩展上下文:
- 打开任意一个 VSCode 窗口(作为主窗口)
- 执行
File > Add Folder to Workspace…,逐个添加含.git目录的仓库路径(不能只加父目录) - 添加完毕后,执行
File > Save Workspace As…,保存为my-projects.code-workspace类文件 - 关闭所有窗口,双击该
.code-workspace文件,或运行code my-projects.code-workspace
注意:git.autoRepositoryDetection 建议设为 false,否则 VSCode 可能误识别子模块或 node_modules/.git,导致 SCM 视图卡顿或显示异常仓库。
为什么 Window: Merge All Windows 经常失效
这个命令看似对口,但实际限制极多,容易白忙活:
- 只对“同用户会话、同安装路径启动的窗口”有效;从 Dock/开始菜单反复点击图标新开的窗口,常被系统视为新会话
- 双击文件(如
package.json)直接打开的窗口,多为“临时工作区”,Window: Merge All Windows对其无效 - 必须在你希望保留的“主窗口”中执行命令,且焦点要落在该窗口上
- 某些插件(如旧版 GitLens)会劫持窗口创建逻辑,建议临时禁用后重试
真正容易被忽略的是:即使命令成功,它也只是把其他窗口的编辑器标签“搬进来”,不会自动识别这些文件属于哪个 Git 仓库——你仍需手动执行 Add Folder to Workspace 并保存工作区,否则下次重启就全丢了。


















