Skip to content

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.mdCLAUDE.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 中不可用。