技术速递|从想法到拉取请求:使用 GitHub Copilot CLI 构建的实用指南
作者Ari LiVigni排版Alan Wang一份动手实践指南讲解如何使用 GitHub Copilot CLI 从意图出发逐步生成可供审查的代码变更以及这些工作如何自然地流转到你的 IDE 和 GitHub 中。大多数开发者早已在终端中完成实际工作。我们在终端中初始化项目、运行测试、调试 CI 失败并在代码准备好评审前进行快速、机械性的修改。GitHub Copilot CLI 正是契合了这种工作方式它帮助你直接在终端中从“意图”转化为“可评审的差异”并将这些工作自然衔接到编辑器或拉取请求中。本文基于一个新的 GitHub Skills 实践练习介绍如何使用 Copilot CLI 构建并演进一个应用的实用工作流。该练习提供了分步引导和动手实践而本文重点解释每一步为何有效以及在真实项目中何时使用。GitHub Copilot CLIhttps://github.com/features/copilot/cli/?wt.mc_id3reg_webpage_reactorGitHub Skills 实践练习https://github.com/skills/create-applications-with-the-copilot-cli/?wt.mc_id3reg_webpage_reactor通过 GitHub Skills 深入学习如果你希望获得完整引导并进行动手练习可以查看 GitHub Skills 课程用 Copilot CLI 创建应用。该课程在预配置的 GitHub Codespaces 环境中逐步讲解这些模式是在应用到生产代码前进行安全实验的好方式。内容包括安装 Copilot CLI并使用 issue 模板创建 issue生成一个 Node.js CLI 计算器应用扩展计算器功能增加额外的运算为函数编写单元测试创建、评审并合并拉取请求用 Copilot CLI 创建应用https://github.com/skills/create-applications-with-the-copilot-cli/?wt.mc_id3reg_webpage_reactorCopilot CLI 是什么以及它不是什么Copilot CLI 是一个运行在终端中的、具备 GitHub 上下文感知能力的编码智能体。你可以用自然语言描述需求使用/plan在动手前制定计划然后在执行前审查具体命令或 diff。Copilot 可能会进行内部推理但只有在你明确批准后才会执行操作。在实践中它可以帮助你根据意图探索问题使用/plan制定结构化方案或通过 Shift Tab 进入规划模式生成或修改文件在失败发生时解释原因它不会未经允许自动执行命令或修改代码取代严谨的设计工作消除代码评审的必要性你始终掌控执行、修改和发布的过程。Step 1从意图开始而不是脚手架不要先选框架或复制模板而是先说明你想构建什么。在空目录中运行copilot Create a small web service with a single JSON endpoint and basic tests如果你希望通过单条提示直接生成方案而不是进入交互模式也可以运行copilot -p Create a small web service with a single JSON endpoint and basic tests在该 Skills 实践中这一模式被反复使用先描述你的意图然后再决定哪些建议的命令是你真正想要执行的。此阶段 Copilot CLI 会探索问题空间例如推荐技术栈设计文件结构提出初始化命令不会有任何自动执行——你可以先检查再决定是否运行。这使 CLI 成为尝试设计方案的理想环境。Step 2只生成你愿意“负责”的脚手架当你确定方向后可以让 Copilot CLI 帮你生成项目结构 Scaffold thisas a minimal Node.js project with a test runner and README它可以创建目录与配置搭建基础结构生成样板代码不会有任何操作被自动执行。在决定运行之前你需要先检查所有内容。这使得 CLI 成为在确定设计方案之前进行实验的理想环境。Step 3在失败点迭代直接在 Copilot CLI 中运行测试Run all my tests and make sure they pass当出现问题时可以在同一会话中直接向 GitHub Copilot 询问具体的失败原因 Why are these tests failing?如果你希望获得一个具体的解决方案而不是解释可以尝试 Fix this test failure and show the diff这种模式——执行!command、检查、提问、diff——让智能体始终基于真实输出进行工作而不是依赖抽象的提示。小提示在实际使用中当你需要理解问题时explain更有用而当你希望获得一个可供审查的具体方案时suggest更合适。你可以在我们的指南中了解更多关于 GitHub Copilot CLI 斜杠命令的内容。了解更多关于 GitHub Copilot CLI 斜杠命令https://github.blog/ai-and-ml/github-copilot/a-cheat-sheet-to-slash-commands-in-github-copilot-cli/?wt.mc_id3reg_webpage_reactorStep 4处理机械性或全局修改GitHub Copilot CLI 也非常适合处理那些“描述简单但执行繁琐”的修改 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在需要细化逻辑、做出可经受评审的决策时使用/IDEGitHub提交代码使用/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 特有能力例如仓库范围记忆或“委托式拉取请求”工作流。探索 Copilot SDK https://github.com/github/copilot-sdk/?wt.mc_id3reg_webpage_reactor带走这些要点当你把 GitHub Copilot CLI 当作“推动进度的工具”而不是“替代判断的工具”时它的价值才能实现最大化。合理使用时它可以帮助你更快地从意图走向具体实现探索想法、搭建项目、诊断失败、在终端中处理机械性工作。当需要精确性时你转向编辑器当准备分享成果时它会以拉取请求的形式进入 GitHub ——可评审、可测试、可交付。这个整体流程比任何单个命令都更重要。如果你只从本文记住一句话那就是Copilot 最好的工作方式是自然融入开发者已有的软件构建流程中。在 CLI 中快速启动并摆脱阻塞在 IDE 中放慢速度做出可靠决策并依靠 GitHub 让成果真正“沉淀下来”。开始使用 GitHub Copilot CLI 或参加 Skills 课程 GitHub Copilot CLIhttps://github.com/features/copilot/cli/?wt.mc_id3reg_webpage_reactorSkills 课程https://github.com/skills/create-applications-with-the-copilot-cli/?wt.mc_id3reg_webpage_reactor