探索 GitHub Copilot:当 AI 成为你的贴身编码助手

发布于:2025-03-29 ⋅ 阅读:(18) ⋅ 点赞:(0)

解锁 GitHub Copilot 的正确用法,提升开发效率,开源贡献者还能免费申请使用资格。

阅读原文请转到:https://jimmysong.io/blog/mastering-github-copilot-for-open-source/

过去一年中,我一直享有 GitHub Copilot 的免费使用资格,但是由于种种原因,我并没有深入地使用它。最近看到了 GitHub 官方发布的一篇关于 Copilot 的博客《Mastering GitHub Copilot: When to use AI agent mode》,让我对如何更好地使用 Copilot 有了新的灵感和思考。

在这篇文章里,我想和大家分享一下我对 Copilot 强大功能的理解,尤其是 Copilot Edits 和 Agent Mode 这两个模式之间的差异和使用场景。最后,我还想呼吁所有开源项目的贡献者:如果你符合条件,一定要去积极申请 Copilot 免费使用资格,让自己的开发效率更上一个台阶!

为什么你的 AI 辅助写码好像“不给力”?

大多数开发者在接触 AI 辅助编码工具(比如 GitHub Copilot)时,都会或多或少地遇到一些状况,比如:

  • • 生成的代码和你所需的功能“差那么一点”;

  • • 需要在多个文件间跳来跳去修改,却希望 AI 能自动帮忙“通盘考虑”。

其实,这些小挫折往往不在于工具本身,而在于你是否找对了使用方式。GitHub Copilot 内部包含多个侧重点各不相同的功能,它们各自适合在不同的情景下使用。正确地选择合适的功能,就是解锁 Copilot 真正实力的关键

Copilot Edits:快速精确的“微调”

什么时候用它?

  • • 小范围的修复:修复一个函数的 bug。

  • • 重构特定模块:给函数或组件做局部优化。

  • • 做跨文件的一致性改动:例如统一日志打印格式,或者统一变量命名方式。

Copilot Edits 的功能就像是给你配备了一个能读懂上下文的“超级编辑器”。你可以快速发出命令,让它在有限范围内对现有代码进行改动,并在提交前查看 diff,随时保持对改动的掌控。

Agent Mode:你的“多文件大管家”

与 Copilot Edits 相比,Agent Mode 更像是一个能够宏观统筹全局的 AI 助手。它不只是在一个文件里给你提建议,更可以去你的整个项目里做深度搜索、自动找出依赖关系、创建或修改多个文件,甚至可以帮你在终端里运行命令、编译、测试项目等。

适合的使用场景

  1. 1. 构建完整功能:如“为应用添加全局的事件跟踪”。

  2. 2. 理解和浏览陌生项目:如“帮我搞懂这个项目里认证系统是怎么运作的”。

  3. 3. 整合测试:如“为 UserService 写测试并确保全部通过”。

  4. 4. 需要运行大量终端操作:如“创建新的 React + TS + Redux + styled-components 项目”。

  5. 5. 复杂的重构:如“统一替换所有 API 调用并加入新的错误处理逻辑”。

我在个人网站上的应用场景

博主(也就是我)在给个人网站的 GitHub Action 中增加一个更新索引文件的工作,可以告诉 Copilot Agent:

“给我的 GitHub Action 中增加一个更新 search index 的任务并在本地测试”

然后 Copilot Agent 会扫描我的代码库,聪明地在我的 GitHub Action 配置文件中帮我插入相应的任务,并会自动的安装依赖软件并运行测试。

VS Code 中的 Copilot Action
VS Code 中的 Copilot Action

这就是 Agent Mode 的强大之处,它可以一次性处理全局级别的改动,真正让 AI 成为你的“对等”开发伙伴。

核心优势

  • • 自动检索整个代码库:不用手动定位所有相关文件。

  • • 自我迭代:可以一次性迭代和修复自己生成的代码。

  • • 终端命令执行:在得到你授权后,会自动跑命令、编译或测试。

  • • 维持整体架构一致:在改动时会考虑跨文件依赖关系,减少顾此失彼的风险。

Chat 窗口:你的“Copilot 指挥中心”

无论你是想使用 Copilot Edits 还是 Agent Mode,你都会用到 VS Code 里的 Copilot Chat 窗口:

  1. 1. 提问常规技术问题,比如:“如何在 Node.js 中实现 JWT 认证?”

  2. 2. 使用 /explain 理解复杂代码片段。

  3. 3. 使用 /fix 让 Copilot 帮你调试。

  4. 4. 使用 /tests 为给定代码自动生成测试用例。

  5. 5. 随时在 Edits 和 Agent Mode 之间切换。

记住:你提供的上下文信息越完整,Copilot 生成的回答就越准确。请不要吝啬给它多一些提示!

二者并不冲突——混合使用才是王道

原文中强调了一点:Copilot Edits 和 Agent Mode 并不是二选一的对立关系,而是相辅相成。

  • • 当你需要快速修复和微调时,选 Copilot Edits;

  • • 当你需要做多文件改动、增加大型功能模块或跑终端命令等,启用 Agent Mode。

AI 只是辅助,我们才是项目的主导者,无论在任何模式下,你都随时拥有最终的决定权。与 AI 协作的关键是:在发起需求时确保“意图”足够清晰,并在生成代码后自行进行必要的审查和测试。

如何开启 Copilot Edits 和 Agent Mode

Copilot Edits

  1. 1. 在 VS Code 中打开 Copilot Chat 窗口。

  2. 2. 点击「Edit with Copilot」按钮,进入 Edits 视图。

  3. 3. 把需要修改的文件加入工作集(working set),未纳入工作集的文件默认不会被修改。

  4. 4. 向 Copilot 发出修改需求,比如“请把用户验证逻辑改成基于 JWT 的方式,并把相关函数命名统一为 verifyUserToken”。

  5. 5. 接受修改前,一定要查看 diff,确认无误后再点「接受更改」。

Agent Mode

  1. 1. 需使用 VS Code 1.99 或更高版本。

  2. 2. 在 Copilot Chat 中将模式切换为「Agent」。

  3. 3. 描述你想实现的复杂功能,例如“创建一个带有打字机动画、上下命令历史、tab 补全、主题切换功能的 Terminal 界面。”

  4. 4. Copilot 会在后端自动迭代并提出改动建议,你需要对每一步改动进行审核并决定是否执行。

  5. 5. 如需个性化定制,可在 VS Code 中针对工程的特定需求编写自定义提示(custom instructions)。

号召:开源贡献者可免费使用 GitHub Copilot

在国内外,你的个人和团队如果对开源社区有贡献——比如在 GitHub 上维护或积极参与开源项目,就有机会免费申请 GitHub Copilot,这对提高工作效率、让团队更专注于关键业务逻辑而言非常有帮助。

申请地址(Copilot for Open Source)

建议把你的 GitHub Profile、开源项目链接、贡献度、Stars 等信息准备好,申请通过后就可以体验到 Copilot 的强大功能。

别担心! 只要你确实为开源生态做出过贡献,GitHub 官方是很鼓励你去申请 Copilot 的免费使用资格的。需要注意的是该免费资格是按月赋予的!

结语:拥抱 AI 工具,让开发更高效

从最初的 GitHub Copilot 到如今逐渐涌现的各种 AI 编程工具,比如 CursorAmazon CodeWhispererGoogle Gemini Code Assist、以及基于大语言模型的各种插件等等,AI 编程助手已经不再是新鲜事。Cursor 的特点在于提供类似 IDE 的环境,可直接在其编辑器里集成对话式的 AI 辅助;Replit 的 Ghostwriter 则充分利用 Replit 在线编程环境的优势,为多人协作和实时预览提供极大方便。和 Copilot 相比,这些工具可能在对话交互深度、代码质量、或对特定语言和生态的支持范围上各有所长。但总体而言,它们都在让开发者摆脱那些冗杂、重复、机械的编程工作,从而腾出更多时间和精力进行架构和创新。

“AI 不会取代程序员,但会取代那些拒绝与 AI 合作的程序员。”

如果你正在或即将投入开源项目的开发,或者在商业项目中想要挖掘更多高阶生产力,都推荐你去尝试并深入学习这些 AI 编程工具。在 GitHub 官方文档 中,你还可以找到一份从入门到进阶的 Copilot 教程系列——从最初的安装到高级用法,让你快速掌握 Copilot 的精髓。也欢迎试用其他同类工具,对比各种功能优缺点,探索适合自己团队的工作流。

让我们一起拥抱 AI,做更高效的开发者吧!

如果你对 AI 编程、云原生和开源技术感兴趣,也欢迎访问我的个人博客 jimmysong.io,一起交流讨论。祝大家编码愉快,效率倍增!