You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VSCode中为Monorepo各工作区配置Source Control文件可见范围

解决Monorepo下VSCode窗口仅显示对应模块变更的问题

方法1:给每个窗口单独配置Git路径过滤

每个VSCode窗口打开对应模块目录(比如apps/one)后,按以下步骤操作:

  1. 打开设置面板(快捷键Ctrl+, / Cmd+,)
  2. 切换到「工作区」标签页(确保仅对当前窗口生效,不影响全局配置)
  3. 搜索git.pathFilters,点击「编辑 in settings.json」
  4. 在工作区配置中添加对应模块的过滤规则,比如针对apps/one模块:
{
  "git.pathFilters": ["apps/one/**"]
}

配置完成后,当前窗口的Source Control面板就只会展示apps/one目录下的所有变更,其他模块的变更会被自动隐藏。

如果你的窗口是打开整个Monorepo根目录,只想过滤出指定模块的变更,同样可以用这个配置,只需把路径改成对应模块的路径即可。

方法2:使用多根工作区集中管理(可选)

如果需要在一个窗口里管理多个模块且各自独立显示变更,或者想统一配置各模块的规则,可创建多根工作区文件:

  1. 打开VSCode,点击「文件」>「将文件夹添加到工作区」,依次添加apps/one、apps/two等模块目录
  2. 点击「文件」>「保存工作区为...」,命名为monorepo.code-workspace
  3. 打开这个工作区文件,给每个根目录单独配置pathFilters:
{
  "folders": [
    {
      "path": "apps/one",
      "settings": {
        "git.pathFilters": ["apps/one/**"]
      }
    },
    {
      "path": "apps/two",
      "settings": {
        "git.pathFilters": ["apps/two/**"]
      }
    }
  ]
}

配置后,在多根工作区里,每个模块的Source Control会独立展示自身的变更内容。

注意事项

  • 必须配置「工作区」设置,而非「用户」设置,否则会全局生效,所有窗口共用同一过滤规则
  • git.pathFilters支持glob模式,比如apps/one/**表示匹配apps/one下所有文件及子目录
  • 如果需要排除特定路径,可在规则前加!,例如["apps/one/**", "!apps/one/node_modules/**"]

内容的提问来源于stack exchange,提问作者Tom Freudenberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:31:02