Skip to content

GitHub Copilot 的内容排除功能让你指定哪些文件不应该被 AI 读取,被排除的文件不会触发 inline suggestions,也不会影响 Chat 回答,还会被 Code Review 功能跳过。本页介绍内容排除的配置方式和注意事项。

GitHub Copilot 内容排除:保护敏感文件不被 AI 读取

什么是内容排除

内容排除(Content Exclusion)允许你配置 Copilot 忽略特定文件或目录:

  • Inline suggestions 在被排除的文件中不会出现
  • Copilot Chat 不会用被排除的文件内容来构建回答
  • Code Review 不会审查被排除的文件

典型使用场景

  • .env 文件和包含密钥的配置文件
  • 法律或合规要求不能提交给 AI 处理的代码
  • 专有算法或商业机密代码
  • 大型二进制生成文件(避免污染上下文)

谁可以配置

角色配置范围
仓库管理员当前仓库内的文件
组织 Owner组织内所有仓库,针对分配了 Copilot 席位的用户
企业 Owner企业内所有组织,针对所有 Copilot 用户

配置方法

在仓库或组织 Settings → Copilot → Content exclusion 中配置:

# 排除所有 .env 文件
**/.env*

# 排除特定目录
src/proprietary/**

# 排除所有 YAML 配置文件
**/*.yaml
**/*.yml

支持 glob 语法,与 .gitignore 的语法基本一致。

生效范围

工具Inline SuggestionsCopilot Chat
VS Code✅ 支持✅ 支持
JetBrains IDEs✅ 支持✅ 支持
Visual Studio✅ 支持✅ 支持
Vim/Neovim✅ 支持N/A
GitHub Mobile❌(预览中)❌(预览中)
GitHub.comN/A✅ 支持

注意:内容排除不适用于 VS Code 的 Edit 模式和 Agent 模式,这些模式目前不受约束。

限制和注意事项

间接访问风险:内容排除基于文件路径,但如果被排除的文件的内容通过其他方式间接暴露(例如被另一个未排除的文件导入,或出现在 IDE 的项目元数据中),Copilot 仍可能间接读取到相关内容。

符号链接:指向被排除文件的符号链接不受保护,通过符号链接访问的内容仍可能被读取。

远程仓库:远程仓库的内容排除规则不会自动同步到本地开发环境。

常见问题

Q: 配置了内容排除后,IDE 里的 Copilot 会立刻生效吗?

A: 生效需要一定时间同步,通常在重启 IDE 或重新连接 Copilot 后生效。如果不确定是否生效,可以在被排除的文件里测试是否还有 inline suggestions。

Q: 内容排除和 .gitignore 有什么区别?

A: .gitignore 控制哪些文件不被 git 跟踪,内容排除控制哪些文件不被 Copilot 读取。两者独立配置,.gitignore 里的文件不会自动被 Copilot 排除。

Q: 企业设置的内容排除规则能被仓库管理员覆盖吗?

A: 不能。上级(企业/组织)设置的排除规则优先级更高,仓库管理员无法取消企业级别的排除配置,只能在企业/组织规则的基础上增加更多排除规则。