Appearance
GitHub Copilot CLI 的最大价值在于将 AI 融入终端工作流。本页整理官方推荐的使用实践:用 Plan 模式避免盲目执行、管理会话状态、通过自定义指令减少重复提示,以及团队统一 AI 使用规范的方法。
GitHub Copilot CLI 最佳实践:从 Plan 模式到多仓库协作的高效工作流
1. 用自定义指令减少重复
全局自定义指令
在 ~/.copilot/copilot-instructions.md 写入个人偏好,对所有项目生效:
markdown
## 代码风格
- TypeScript 优先
- 禁止 any 类型
- 错误处理用 Result 模式,不用 throw
## 工作习惯
- 修改前先列出会影响哪些文件
- 提交代码前运行 lint 和测试仓库级自定义指令
在 .github/copilot-instructions.md 写入项目专属规范,优先级高于全局指令:
markdown
## 本项目技术栈
- 框架:Next.js 14(App Router)
- 数据库:Prisma + PostgreSQL
- 测试:Vitest + Testing Library
## 构建验证
修改完成后必须运行 `bun run build && bun test`路径级指令(细粒度控制)
在 .github/instructions/ 目录下创建 NAME.instructions.md,通过 applyTo 指定作用范围:
yaml
---
applyTo: "**/*.test.ts,**/*.spec.ts"
---
测试文件使用 describe/it 结构,每个 it 块只测一件事
测试名称用中文描述指令优先级
| 位置 | 优先级 |
|---|---|
.github/copilot-instructions.md | 最高(仓库级) |
.github/instructions/*.instructions.md | 仓库级路径专属 |
AGENTS.md 或 CLAUDE.md(根目录) | 主指令 |
~/.copilot/copilot-instructions.md | 最低(全局) |
2. Plan 模式:先规划再行动
什么时候用 Plan 模式
| 场景 | 是否需要 Plan |
|---|---|
| 单文件小改动、简单 Bug 修复 | 不需要 |
| 多文件重构 | 需要 |
| 新功能开发 | 需要 |
| 不确定影响范围的修改 | 需要 |
触发 Plan 模式:
- 按
Shift+Tab切换 - 或在消息中输入
/plan 要实现的功能
Plan 模式会生成一个类似下面的方案,不会执行任何修改:
markdown
# 实现方案:OAuth2 认证
## 涉及文件
- src/auth/oauth.ts(新建)
- src/middleware/auth.ts(修改)
- .env.example(修改)
## 执行步骤
- [ ] 安装 passport-github2 依赖
- [ ] 创建 OAuth 策略配置
- [ ] 更新中间件注入 OAuth 路由
- [ ] 添加回调处理函数确认方案没问题后,发"按计划执行"让 Copilot 开始实现。
3. 推荐工作流:探索→规划→编码→提交
完整流程示例
# 第一步:了解代码库
"读一下认证相关的文件,不要写代码"
# 第二步:规划
/plan 给注册流程添加邮箱验证
# 第三步:审查计划
(查看生成的计划,根据需要调整后确认)
# 第四步:实现
"按计划执行"
# 第五步:验证
"运行测试,修复失败的用例"
# 第六步:提交
"用描述性的 commit 消息提交这些改动"会话管理命令
| 命令 | 作用 |
|---|---|
/clear | 清空当前上下文,开始新任务(保留历史) |
/new | 开启全新会话 |
/session | 查看会话状态 |
/session checkpoints | 查看代码检查点(支持回滚) |
/context | 查看当前上下文内容 |
最佳实践:不相关的任务之间用 /clear 或 /new 隔开,避免上一个任务的上下文影响当前任务。
4. 模型选择建议
| 模型 | 适合场景 |
|---|---|
| Auto | 日常使用,自动平衡质量和速度 |
| Claude Opus 4.5/4.7 | 复杂架构设计、跨文件重构 |
| Claude Sonnet 4.5/4.6 | 日常代码任务,速度快 |
| GPT Codex | 代码生成和审查 |
切换模型:在对话中使用 /model 命令。
5. 将任务委托给 Cloud Agent
对于可以异步处理的任务,用 /delegate 提交给 Cloud Agent:
/delegate 为用户设置页面添加深色模式支持Cloud Agent 会在 GitHub 上独立创建分支、写代码、提 PR,你不需要一直盯着。
适合场景:
- 明确需求但不需要实时介入的功能
- 在其他仓库中做修改(你不需要本地 clone)
6. 工具权限管理
Copilot CLI 在执行敏感操作前会请求权限确认。可以预先配置允许/拒绝的命令:
bash
# 允许所有 git 子命令(但不包括 push)
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'重置已授权的工具:
/reset-allowed-tools常见问题
Q: Plan 模式的方案生成后,我发现有问题,能修改吗?
A: 可以。Plan 模式生成方案后,Copilot 会等你确认。如果你指出问题,它会修改方案直到你满意,然后再开始执行。
Q: 会话里的检查点(checkpoint)有什么用?
A: Copilot CLI 在执行重要修改前会保存检查点,如果执行结果不满意,可以通过 /session checkpoints 找到之前的状态并回滚,类似代码的"存档"功能。
Q: CLI 的自定义指令和 IDE Chat 的 Custom Instructions 是一回事吗?
A: 是的,它们使用同一套指令文件(.github/copilot-instructions.md),都会被对应环境下的 Copilot 读取。但 CLI 支持额外的 ~/.copilot/copilot-instructions.md 全局配置,这在 IDE Chat 中不可用。