Skip to content
Published at:

GitHub Copilot 学习指南

本文基于 VS Code 官方文档 整理,旨在为公司内部培训提供一份 GitHub Copilot 的全面学习指南。

什么是 GitHub Copilot?

GitHub Copilot 是一款集成在 Visual Studio Code 中的 AI 编程助手。它经过公共代码库的训练,支持绝大多数编程语言和框架。它可以根据你的自然语言提示(Prompts)和现有的代码上下文,提供代码建议、解释代码逻辑,甚至自动实现功能。

核心功能 (Core Capabilities)

1. 行内建议 (Inline Suggestions)

Copilot 最基础的功能是在你输入代码时提供实时建议。

  • 补全代码:从单行代码补全到生成整个函数。
  • Next Edit Suggestions:根据上下文预测你接下来可能进行的逻辑修改(例如改了一个变量名,预测其他地方也要改)。
  • 示例
    • 输入 function calculateTax(,Copilot 会尝试补全整个税计算函数的实现。
    • 输入注释 // Create a REST API endpoint for user authentication,它会生成对应的 API 代码。

2. 自动编码 (Autonomous Coding)

使用 Copilot Agents 可以自动规划和执行复杂的开发任务。

  • 能力:协调多步工作流,运行终端命令,调用工具。
  • 场景
    • "实现 OAuth 认证功能"
    • "将代码库迁移到新框架"
    • "调试失败的测试并修复"
  • 注:此功能可能需要管理员开启。

3. 自然语言对话 (Natural Language Chat)

通过聊天界面与代码库进行交互。

  • 交互方式:提问、要求解释、或通过对话修改代码。
  • 多文件修改:Copilot 可以分析项目结构,一次性跨多个文件进行协调修改。
  • 常用指令
    • "解释这个项目中的认证流程"
    • "为什么数据处理函数会有内存泄漏?"
    • "为支付服务添加错误处理"

4. 智能操作 (Smart Actions)

VS Code 内置了许多增强的 AI 操作。

  • 功能:生成提交信息(Commit Message)、重命名变量、修复编辑器中的报错、语义搜索等。

快速上手 (Getting Started)

  1. 安装与登录

    • 点击状态栏的 Copilot 图标,选择 "Set up Copilot"。
    • 按照提示登录 GitHub 账号(支持个人版或企业版订阅)。
  2. 体验行内建议

    • 创建一个 .js 文件,输入 function factorial(,观察灰色的一行或多行建议。
    • Tab 键接受建议。
  3. 使用 Chat 视图

    • Cmd+I (macOS) 或 Ctrl+I (Windows/Linux) 打开 Inline Chat。
    • 选中一段代码,输入指令如 "Refactor this code to use async/await"。

常见使用场景 (Usage Scenarios)

代码分析与审查 (Code Analysis)

  • "解释这个应用的认证逻辑"
  • "指出这段代码潜在的安全问题"
  • "为这个 API 接口添加 JSDoc 文档"

调试与排错 (Debugging)

  • "通过分析找出组件不必要重新渲染的原因"
  • "优化这条数据库查询语句"
  • "修复这个数据管道中的内存泄漏"

功能实现 (Feature Implementation)

  • "创建一个带有邮箱验证的用户注册系统"
  • "使用 WebSockets 添加实时通知功能"

测试 (Testing)

  • "为这个服务类生成单元测试"
  • "为 API 端点创建集成测试"

学习新技术 (Learning)

  • "展示 async/await 和 Promise 的区别"
  • "如何在 Go 语言中实现这个 Python 的模式?"

个性化定制 (Customize the AI)

为了让 Copilot 更符合你的工作流,可以进行以下配置:

  1. 自定义指令 (Custom Instructions)

    • 在设置中或 .github/copilot-instructions.md 文件中定义项目规范。
    • 例如:"总是使用 TypeScript 类型"、"优先使用 const 而非 let"、"组件使用箭头函数"。
  2. 切换模型 (Language Models)

    • 根据任务需求选择不同的模型(如追求速度的模型 vs 擅长推理的模型)。
  3. 扩展工具 (Extend with Tools)

    • 通过 MCP (Model Context Protocol) 或插件市场,让 Copilot 能够访问数据库、外部 API 等。

最佳实践 (Best Practices)

  1. 选择合适的交互方式:编码时用行内建议;复杂逻辑用 Chat;多步任务用 Agent。
  2. 编写高质量提示 (Prompting)
    • 具体明确:上下文越丰富,结果越好。
    • 迭代:如果第一次回答不完美,通过追问进行调整。
  3. 利用上下文:在 Chat 中通过 @workspace 或引用特定文件,让 Copilot 了解更多背景。
  4. 人工审查:AI 生成的代码可能包含错误或安全隐患,务必进行人工审查和测试

几种Agent模式区别

这几种模式主要对应了你在开发过程中不同阶段的需求,从简单的“问问题”到复杂的“全自动干活”。以下是它们的区别和最佳使用场景:

1. Ask (问答模式)

这是最基础的对话模式,类似你现在和我交流的方式。

  • 主要特点:侧重于获取信息解释概念生成代码片段。它通常不会直接修改你的文件(除非你复制粘贴),而是提供思路和答案。
  • 适用场景
    • "这段代码是什么意思?"(解释代码)
    • "TypeORM 的 OneToMany 怎么写?"(语法查询)
    • "帮我写一个正则表达式来验证邮箱。"(生成片段)
    • "为什么我的程序报错了?"(排错/调试)

2. Edit (编辑模式)

侧重于对现有代码的直接修改。通常在编辑器内直接选中代码或在特定文件上下文中使用。

  • 主要特点即时生效,针对性强。你给它一段指令,它直接把你的代码改成想要的样子。
  • 适用场景
    • 选中一个函数:"给这个函数加上错误处理。"
    • 选中一段逻辑:"把这个重构得更简洁一点。"
    • "把所有的 var 替换成 constlet。"
    • "给这段代码加上详细的注释。"

3. Agent (代理模式)

这是最高级的模式,相当于雇佣了一个自主的初级程序员

  • 主要特点多步骤、跨文件、自主决策。Agent 可以自己去搜索文件、读取上下文、分析依赖、然后执行一系列复杂的修改。它不只是回答问题,而是去完成一个任务
  • 适用场景
    • "帮我实现一个新的 User 模块,包括 Entity, Service 和 Controller。"(从零构建功能)
    • "把项目中所有的 relative import 改成 alias import。"(全局重构)
    • "按照这个报错信息,找出并修复导致 bug 的根源。"(自主排错)
    • 当你不知道具体改哪个文件,只知道要做什么功能时。

4. Plan (计划模式)

侧重于思考架构拆解任务,而不是立即写代码。

  • 主要特点宏观规划。它会帮你生成 Step-by-Step 的行动指南(Todo List),确保你在动手之前思路是清晰的。
  • 适用场景
    • "我们要从 TypeORM 迁移到 Prisma,需要分哪些步骤?"(复杂迁移规划)
    • "设计一个电商的购物车系统,需要哪些表和接口?"(系统设计)
    • 当你面对一个庞大的需求无从下手时,先用 Plan 模式理清思路,再用 Agent 或 Edit 模式去执行。

总结建议

  • 不懂就问 -> Ask
  • 指哪改哪 -> Edit
  • 复杂重构/新功能 -> Agent
  • 思路混乱/系统设计 -> Plan

参考链接:

Updated at: