GitHub Copilot 隐私控制核心在于自主管理代码上传与上下文范围:关闭“Allow GitHub to use my code snippets”禁用训练上传;按语言或工作区配置启用状态;禁用自动上下文上传并手动触发聊天;谨慎管理自定义指令与选中范围。

GitHub Copilot 在 VS Code 中默认会为提升建议质量而传输部分代码上下文到云端模型,但所有关键隐私控制权都在你手上——只要知道在哪调、关什么、怎么设。
关闭代码片段上传(最基础的隐私保护)
这是防止本地敏感代码被用于模型训练的第一道防线。Copilot 默认允许 GitHub 使用你的代码片段改进产品,必须手动关闭:
- 打开 VS Code 设置(Ctrl+, 或 Cmd+,)
- 搜索 “github copilot allow code snippets”
- 取消勾选 “Allow GitHub to use my code snippets for product improvement”
关闭后,Copilot 不再将你输入的代码块上传用于训练,补全功能仍可用,只是长期优化能力略有减弱。
禁用内联建议或按语言限制启用
如果你只在特定文件类型中信任 Copilot,或想彻底避免自动补全带来的潜在数据外泄风险,可以精细控制:
- 全局禁用:设置中搜索 “github.copilot.enable”,将 “*” 对应值设为 false
- 按语言禁用:例如不希望在 .env 或 config.yml 文件中触发建议,可在设置中添加:
“github.copilot.enable”: {“json”: true, “yaml”: false, “shellscript”: false} - 工作区级控制:在项目根目录 .vscode/settings.json 中写入上述配置,仅对该工程生效
启用本地优先处理模式(进阶隔离)
目前 VS Code 版 Copilot 尚未原生支持纯离线模型,但可通过组合设置大幅降低网络交互频率:
- 禁用 Copilot Chat 的自动上下文上传:在设置中关闭 “GitHub Copilot: Enable Contextual Suggestions”
- 手动触发聊天而非自动发送:使用 Ctrl+Shift+P →“Copilot: Open Chat”,避免编辑器自动抓取整文件
- 对敏感项目,可配合系统 防火墙 规则,阻止 githubcopilotd.exe(Windows)或相关进程联网(macOS/Linux 可用 pfctl 或 iptables 限制)
管理自定义指令与上下文范围
Copilot Chat 会读取你项目中的 .github/copilot-instructions.md 和代码文件来生成响应——这意味着你得主动控制它“看到什么”:
- 避免在 copilot-instructions.md 中写入密钥、路径、内部 API 地址等敏感信息
- 请求解释或修改代码时,先手动选中目标函数 / 区块,再右键选择 “Ask Copilot about Selection”,比直接问“帮我改这个文件”更安全
- 文件处理模块默认只提取当前光标附近代码块(带 EXISTING_CODE_MARKER 标记),不传全文;如需更高保障,可检查扩展源码中 src/extension/fileWidget/ 的局部提取逻辑
基本上就这些。不需要改 注册表、不用装第三方插件,VS Code 原生设置 + 一点项目级配置,就能把 Copilot 的数据边界划清楚。关键不是“全关”,而是“按需授权”。