GitHub Copilot CLI 最佳实践
Copilot CLI 不是终端命令加速器,是住在终端里的 AI 编程伙伴。它能理解代码、提方案、写代码、改代码、跑测试、开 PR。前提是你得用它做编程的事,不是用它敲 find。
两种界面、两种模式
copilot交互模式,copilot -p "prompt"单次执行- 默认是 Ask/Execute 模式,Shift+Tab 切换 Plan 模式
- Plan 模式下先出计划,你批准后才写代码。非平凡工作必须用 Plan。
核心命令
/model 切换模型,/delegate 委托任务,/experimental 触发 Rubber Duck,/memory 看它对代码库的记忆,/mcp 管理 MCP 服务器,/compact 压缩上下文,/context 看 token 用量。
Prompt:说意图,不是说命令
别:
copilot -p "add auth"要:
copilot -p "给 POST /api/users 加 JWT 认证,参考 POST /api/posts 的现有实现"好的 prompt 四要素:做什么、在哪做、怎么做、不做什么。
Plan 模式
代码写出来便宜,改烂架构贵。非平凡工作都要先切 Plan 模式:
copilot
# Shift+Tab
# 输入需求,让它出计划,批准后再写适用场景:新组件、数据库变更、API 重构、跨文件改动。计划不合适就毙掉重来,比改代码省事。
Rubber Duck
Claude Sonnet + Rubber Duck (GPT-5.4) 能弥补 Sonnet 和 Opus 之间 74.7% 的性能差距。在多文件(3 个以上)、长步骤(70 步以上)场景下效果最明显。
触发时机:计划起草后、复杂实现后、测试写完后执行前。Copilot 卡住时也会自动触发。
手动触发:
copilot -p "/experimental review 这个实现有没有并发问题"/delegate
范围清晰的任务可以让它自主完成:
copilot -p "/delegate 为 auth 模块写单元测试,用 tests/auth/ 里的现有模式"它会探索代码库、建分支、写代码、跑测试、开 draft PR。你 review就行,不用盯着实现。
适合:加测试、按已有模式实现功能、重构、样板代码。
Memory
它跨会话记住你的代码库:
copilot -p "/memory"项目结构、编码风格、既有模式都不用每次解释。问它"这个模块干什么的"比你自己翻快。
MCP 服务器
连接外部工具扩展能力:
ghMCP — 更丰富的 GitHub 上下文- 文件系统 MCP — 精确的文件操作
- 自定义 MCP — 内部工具、数据库
copilot -p "/mcp list"安全
Copilot CLI 能改文件、能跑命令,和 IDE 版不一样。
权限从低到高:
| 选项 | 风险 |
|---|---|
| 每次单独批准 | 最低 |
--allow-tool='shell(git)' --allow-tool='write' |
中 |
--allow-all-tools |
最高 |
会话内批准了某个工具,Copilot 之后就不再问了。包括 rm -rf。
规则:
- 只在信任的目录启动
- 用
--allow-all-tools时加--deny-tool='rm' - 审查每一个请求,不只是命令,还有意图
拒绝时给反馈,别只是"no":
no, 用 repository 的错误处理模式分阶段信任
按任务复杂度,不是按破坏性。
Stage 1:理解代码、回答问题、找代码
Stage 2:单文件改动(加验证、提取函数、改格式)
Stage 3:多文件变更,用 Plan 模式
Stage 4:/delegate 自主完成
一个参考工作流
copilot
# Shift+Tab → Plan 模式
"给 REST API 加限流,用现有 Redis,参考 cache 层的模式"
# 看完计划,不满意让它改,批准
# 看实现 diff,觉得有问题让它改
# 复杂?/experimental review
# 满意了
/delegate 给这个功能写测试总结
- 它是编程伙伴,不是命令生成器
- 非平凡工作必须用 Plan 模式
- 复杂问题开 Rubber Duck
- 清晰任务用 /delegate
- 安全是你的责任,不是它的
用它加速实现,不替代你思考。