作者:Ari LiVigni
排版:Alan Wang
一份动手实践指南,讲解如何使用 GitHub Copilot CLI 从意图出发,逐步生成可供审查的代码变更,以及这些工作如何自然地流转到你的 IDE 和 GitHub 中。
大多数开发者早已在终端中完成实际工作。
我们在终端中初始化项目、运行测试、调试 CI 失败,并在代码准备好评审前进行快速、机械性的修改。GitHub Copilot CLI 正是契合了这种工作方式:它帮助你直接在终端中从"意图"转化为"可评审的差异",并将这些工作自然衔接到编辑器或拉取请求中。
本文基于一个新的 GitHub Skills 实践练习,介绍如何使用 Copilot CLI 构建并演进一个应用的实用工作流。该练习提供了分步引导和动手实践,而本文重点解释每一步为何有效,以及在真实项目中何时使用。
🔍 通过 GitHub Skills 深入学习
如果你希望获得完整引导并进行动手练习,可以查看 GitHub Skills 课程:用 Copilot CLI 创建应用。
该课程在预配置的 GitHub Codespaces 环境中逐步讲解这些模式,是在应用到生产代码前进行安全实验的好方式。内容包括:
- 安装 Copilot CLI,并使用 issue 模板创建 issue
- 生成一个 Node.js CLI 计算器应用
- 扩展计算器功能,增加额外的运算
- 为函数编写单元测试
- 创建、评审并合并拉取请求
Copilot CLI 是什么(以及它不是什么)
Copilot CLI 是一个运行在终端中的、具备 GitHub 上下文感知能力的编码智能体。你可以用自然语言描述需求,使用 /plan 在动手前制定计划,然后在执行前审查具体命令或 diff。Copilot 可能会进行内部推理,但只有在你明确批准后才会执行操作。
在实践中,它可以帮助你:
-
根据意图探索问题
-
使用
/plan制定结构化方案(或通过 Shift + Tab 进入规划模式) -
生成或修改文件
-
在失败发生时解释原因
它不会:
-
未经允许自动执行命令或修改代码
-
取代严谨的设计工作
-
消除代码评审的必要性
你始终掌控执行、修改和发布的过程。
Step 1:从意图开始,而不是脚手架
不要先选框架或复制模板,而是先说明你想构建什么。
在空目录中运行:
plain
copilot
> Create a small web service with a single JSON endpoint and basic tests
如果你希望通过单条提示直接生成方案,而不是进入交互模式,也可以运行:
plain
copilot -p "Create a small web service with a single JSON endpoint and basic tests"
在该 Skills 实践中,这一模式被反复使用:先描述你的意图,然后再决定哪些建议的命令是你真正想要执行的。
此阶段 Copilot CLI 会探索问题空间,例如:
-
推荐技术栈
-
设计文件结构
-
提出初始化命令
不会有任何自动执行------你可以先检查,再决定是否运行。这使 CLI 成为尝试设计方案的理想环境。
Step 2:只生成你愿意"负责"的脚手架
当你确定方向后,可以让 Copilot CLI 帮你生成项目结构:
plain
> Scaffold this as a minimal Node.js project with a test runner and README
它可以:
-
创建目录与配置
-
搭建基础结构
-
生成样板代码
不会有任何操作被自动执行。在决定运行之前,你需要先检查所有内容。这使得 CLI 成为在确定设计方案之前进行实验的理想环境。
Step 3:在失败点迭代
直接在 Copilot CLI 中运行测试:
plain
Run all my tests and make sure they pass
当出现问题时,可以在同一会话中直接向 GitHub Copilot 询问具体的失败原因:
plain
> Why are these tests failing?
如果你希望获得一个具体的解决方案,而不是解释,可以尝试:
plain
> Fix this test failure and show the diff
这种模式------执行( !command )、检查、提问、diff------让智能体始终基于真实输出进行工作,而不是依赖抽象的提示。
💡小提示 :在实际使用中,当你需要理解问题时,explain 更有用;而当你希望获得一个可供审查的具体方案时,suggest 更合适。你可以在我们的指南中了解更多关于 GitHub Copilot CLI 斜杠命令的内容。
Step 4:处理机械性或全局修改
GitHub Copilot CLI 也非常适合处理那些"描述简单但执行繁琐"的修改:
plain
> Rename all instances of X to Y across the repository and update tests
由于这类修改具有机械性且范围明确,因此既易于审查,也方便回滚。CLI 提供的是清晰具体的 diff,而不是一大段生成的文本。
Step 5:当你需要开始打磨代码时,切换到编辑器
最终,速度的重要性会逐渐让位于精确性。
这正是将工作自然过渡到编辑器或 IDE 的时机,因为在那里你可以:
-
推理边界情况
-
优化 API
-
做出设计决策
GitHub Copilot 在这些环境中同样可用,但关键不在于"是否能用",而在于"为什么要切换环境"。CLI 帮助你快速产出可运行的成果,而 IDE 则是你将代码打磨成理想状态的地方。
一个实用的经验法则是:
-
CLI :使用
/plan、生成/diff,以低成本快速推进 -
IDE :在需要细化逻辑、做出可经受评审的决策时使用
/IDE -
GitHub :提交代码,使用
/delegate创建拉取请求,并进行异步协作
Step 6:在 GitHub 上发布
当这些修改看起来没问题后,就可以提交并创建拉取请求,这一步也可以通过 GitHub Copilot CLI 用自然语言完成:
-
添加并提交所有文件,并写上合适的描述性提交信息,然后推送更改
-
创建一个拉取请求,并将 Copilot 添加为审查者
此时,工作变得更加"持久化":
-
可以被团队成员审查
-
可以在 CI 中进行测试
-
可以进入异步迭代流程
这也是 Copilot 价值开始叠加的地方------它不再只是一个单一的交互界面,而是完整交付流程的一部分。该 Skills 练习也特意在这里结束,因为 Copilot 的真正价值体现在提交、拉取请求和代码评审之中,而不仅仅是生成建议。
一个工作流,三个时刻
关于 Copilot,有一个很有帮助的心智模型如下:
-
CLI:以低成本、快速验证价值
-
IDE:塑造并打磨你的代码
-
GitHub:评审、协作并交付
GitHub Copilot CLI 之所以强大,正是因为它融入了这一体系,而不是试图取代它。
使用 Copilot 进行开发?关于 Copilot SDK 的说明
如果你正在构建开发者工具、内部系统,或某种"智能体执行本身就是产品能力"的应用(而不仅仅是在终端中使用的工具),你可能需要了解 GitHub Copilot SDK(目前为技术预览版)。
Copilot SDK 提供对驱动 Copilot CLI 的同一套规划与执行引擎的程序化访问,而无需你自己构建和维护编排层。你不需要自己去连接规划器、工具和恢复逻辑,而是直接定义智能体行为,让 Copilot 负责执行。
当你希望在自己的工作流中进行快速、交互式执行时,使用 Copilot CLI;当你希望将同样的智能体能力嵌入到应用程序中时,使用 Copilot SDK。该 SDK 暴露的是 Copilot CLI 背后的执行引擎,但不包含 GitHub 特有能力,例如仓库范围记忆或"委托式拉取请求"工作流。
带走这些要点
当你把 GitHub Copilot CLI 当作"推动进度的工具",而不是"替代判断的工具"时,它的价值才能实现最大化。
合理使用时,它可以帮助你更快地从意图走向具体实现:探索想法、搭建项目、诊断失败、在终端中处理机械性工作。当需要精确性时,你转向编辑器;当准备分享成果时,它会以拉取请求的形式进入 GitHub ------可评审、可测试、可交付。
这个整体流程比任何单个命令都更重要。
如果你只从本文记住一句话,那就是:Copilot 最好的工作方式,是自然融入开发者已有的软件构建流程中。在 CLI 中快速启动并摆脱阻塞,在 IDE 中放慢速度做出可靠决策,并依靠 GitHub 让成果真正"沉淀下来"。
开始使用 GitHub Copilot CLI 或参加 Skills 课程 >