Appearance
GitHub Copilot 是辅助工具,不是替代品。本页整理官方推荐的使用原则:什么任务用内联建议,什么任务用 Chat;怎样写出高质量的 Prompt;以及如何正确审查和验证 AI 给出的代码建议。
GitHub Copilot 最佳实践:让 AI 辅助编程真正提升效率的 10 个原则
核心原则:辅助你,不替代你
GitHub 官方的定位很明确:Copilot 辅助你,不替代你的专业判断。高效使用 Copilot 的前提是你自己理解代码,而不是把理解的责任也交给 AI。
原则一:选对工具
不同功能适合不同场景,混用会降低效率:
| 任务类型 | 推荐工具 |
|---|---|
| 补全变量名、重复代码、简单测试 | 内联建议(直接打字) |
| 代码解释、架构问答、修复 Bug | Copilot Chat |
| 生成较大代码段、复杂重构 | Chat + Agent 模式 |
| 跨多文件的完整功能开发 | Cloud Agent / Copilot CLI |
| 终端命令、CI/CD 自动化 | Copilot CLI |
原则二:写高质量的 Prompt
明确需求,不模糊:
❌ 帮我优化这段代码
✅ 帮我优化这段代码,减少数据库查询次数,目前每次渲染都会查询一次提供示例:
❌ 生成一个用户注册接口
✅ 生成一个用户注册接口,接受 {email, password, username},密码用 bcrypt 哈希,成功返回 {id, email, createdAt}拆解复杂任务:
一个 Prompt 解决一件事,不要把五个需求堆在一起。
原则三:给 Copilot 合适的上下文
Copilot 看到的越相关,回答越准确:
- 选中代码后再提问:不要让它猜你在说哪段代码
- 打开相关文件:IDE 中打开的文件都会纳入上下文
- 用
#file显式引用:不确定 Copilot 是否能看到某个文件时,用#file:路径明确指定 - 关闭不相关的文件:减少干扰,让 Copilot 更聚焦
原则四:仔细审查 AI 的输出
Copilot 生成的代码不保证正确,审查是必须的:
- 理解再采用:不要直接粘贴你看不懂的代码
- 检查功能正确性:运行测试,手动验证边界情况
- 检查安全性:AI 可能引入 SQL 注入、XSS、不安全的权限控制
- 检查可维护性:AI 生成的代码有时啰嗦,可以让它精简
原则五:利用 Copilot 最擅长的场景
Copilot 在以下场景效果最好:
- 写测试:生成单元测试、模拟 Edge case
- 写重复性代码:表单验证、CRUD 操作、数据转换
- 调试和解释语法错误:把报错粘进去,直接问修复方案
- 生成正则表达式:描述需求,让 Copilot 写正则
- 写代码注释和文档:用
/doc快速生成
原则六:不满意时换思路
如果 Copilot 的回答不对:
- 换个角度提问:用不同的描述方式
- 拆解成更小的问题:一步步引导
- 提供反例:告诉它"不要这样做,改成..."
- 查看备选方案:内联建议支持
Alt+](下一条)查看其他建议
原则七:利用 Plan 模式控制 Agent 行为
Agent 模式功能强大,但可能执行你不想要的操作。使用 Plan 模式(/plan)先看方案:
- 描述任务,触发 Plan 模式
- Copilot 生成执行计划,不直接修改文件
- 你审查计划,确认没问题后再让它执行
这样可以在减少 Premium 请求消耗的同时,避免 Agent 走弯路。
原则八:持续关注新功能
Copilot 每隔几周就会发布新功能。关注 GitHub Changelog 或在 Copilot 设置页面开启新功能预览(Editor Preview Features)。
原则九:给 Copilot 正向/负向反馈
- 接受建议 = 正向信号
- 拒绝/忽略建议 = 负向信号
- Chat 回答上的 👍/👎 = 直接反馈
反馈有助于 GitHub 持续优化模型和建议质量。
原则十:知道边界在哪里
Copilot 不擅长的场景:
- 深度业务逻辑:需要你理解业务意图
- 跨系统架构决策:AI 不了解你的全局约束
- 安全审计:AI 发现不了所有漏洞,不能替代安全审查
常见问题
Q: Copilot 给了一段代码但我不确定对不对,怎么办?
A: 选中代码,在 Chat 里发 /explain 让它解释每行的作用。理解后再决定是否采用。如果有疑问,追问具体的逻辑细节。
Q: Copilot 的建议经常不符合我们项目的代码风格,怎么改善?
A: 在 .github/copilot-instructions.md 中写入项目代码规范(命名约定、框架偏好、禁止的模式等),所有 Chat 对话会自动遵守这些规范。
Q: 如何防止 Copilot 读取项目中的敏感文件?
A: 在仓库设置中配置「内容排除规则」(Content Exclusion),指定不允许 Copilot 访问的文件路径。详见内容排除配置。