Skip to content

GitHub Copilot 上手

这是一份教程型文档——按顺序读完,你会从"装上 Copilot"到"知道四种界面各干什么、怎么把项目规范喂给它"。

遇到不认识的名词看 术语表;要查快捷键和参数看 Cheatsheet;要按场景抄现成做法看 Cookbook

本指南目标:把 Copilot 从"帮我补代码"用成"帮我干活"。

第 0 步:选订阅

Copilot 有免费档,先用起来再说:

  • Copilot Free 免费,每月 2000 次代码补全,模型只能用自动选择。
  • 学生、教师、开源维护者通过资格验证后免费。
  • 觉得额度不够再升级,各计划价格与限制见 Cheatsheet · 计划对照

一个前置事实:Copilot 在 GitHub Enterprise Server 上不可用。公司用的是自建 GHES 的话,先确认这一点。

第 1 步:装上并登录

以 VS Code 为例:装 GitHub Copilot 扩展 → 用 GitHub 账号登录 → 状态栏出现 Copilot 图标即可用。

在终端里用的话另装 CLI(注意有两套 CLI,别装错,区别见术语表):

bash
# 独立 Copilot CLI(完整 agent,需要 Node.js 22+)
npm install -g @github/copilot

其他安装方式见 Cheatsheet · Copilot CLI · 安装

第 2 步:搞清它是怎么"懂你项目"的

先纠正一个最常见的误解:Copilot 不是"ChatGPT + 你的仓库"

它不绑定单一模型(不同订阅可用的模型集合不同),也没有把你的仓库喂进模型训练。它靠的是检索式上下文注入——编辑器把当前文件、你打开的标签页、你显式引用的文件、工具检索到的结果,拼进每一次请求。

这个机制决定了你的所有优化动作:

你做什么为什么有用
打开相关文件再提问打开的标签页会进上下文
#file: 显式引用比让它自己找可靠
写自定义指令每次请求自动带上,一次投入长期受益

反过来,"我们仓库很大所以 Copilot 肯定懂"是错的。详细解释见术语表 · GitHub Copilot

第 3 步:四种界面,各管一段

Copilot 不是一个界面,是四类入口。选错入口是新手最大的效率损失。

界面在哪你怎么用典型任务
代码补全编辑器里你打字的位置打字 → 出灰字 → Tab补下一行、补样板代码
Chat侧边栏 / 行内 / 终端对话解释、重构、多文件改动
CLI终端交互式 agent 会话命令行任务、脚本
Cloud agentGitHub 网页端 / Issue派任务,后台跑,产出 PR边界清楚的耗时任务

3.1 代码补全

最简单也最容易到天花板:打字,出灰字,Tab 接受,Escape 忽略。

想让补全更准,就把意图写进注释:

ts
// 从 users 中过滤出 30 天内活跃且已验证邮箱的用户,
// 返回按 lastActiveAt 降序排序的数组

比写"处理用户"有用得多——原因和写法见 Cookbook · 在编辑器里写代码

3.2 Chat:先学会选模式

⌃⌘I 打开 Chat 视图,⌘I 在编辑器或终端里打开行内 Chat。

Chat 有三档自主程度,这是整份文档里最需要形成肌肉记忆的选择

模式它能干什么选它的信号
Ask只回答,不动代码我要先搞懂
Edit改你指定的文件,你逐条看 diff我知道改哪,不想手写
Agent自己决定改哪些文件、跑命令、多轮迭代我知道目标,不想管过程

判断口诀:你能不能一眼看出它做错了。 能 → 往 Agent 走;不能 → 退回 Edit 甚至 Ask。

深入解释见术语表 · Ask / Edit / Agent,标准流程见 Cookbook · 让 Chat 干多文件改动

3.3 给 Chat 加上下文:@#

两个前缀,作用不同:

  • @ 是参与者——把提问限定到某个领域并注入该领域上下文。当前只有 @github@terminal@vscode 三个(加扩展贡献的)。
  • # 是工具与文件引用——#file:路径 引用文件,#search#read#execute 这类是工具集,MCP 服务器提供的工具也在这个列表里。
@terminal find the largest file in the src directory
#file:gameReducer.js #file:gameInit.js how are these files related

旧教程里常见的 @workspace#editor#git#vscodeAPI 已经不在官方清单里了——代码库检索下沉成了工具,Agent 模式会自主调用。完整的已退役清单见术语表

完整的参与者、工具集、斜杠命令清单见 Cheatsheet

3.4 终端:CLI

bash
copilot            # 启动交互式会话

会话里 @ 文件名 引用文件、! 命令 跑 shell、Shift+Tab 在 standard / plan / autopilot 之间切。

它和 Chat 最本质的区别:它有副作用——会真的改文件、真的跑命令,所以有分级权限(默认询问 / 辅助 / 全部允许)。第一次用建议保持默认,逐条看它想跑什么。

3.5 云端:Cloud agent

在 GitHub Issue 或网页端派任务,它开分支、改代码、开 PR。适合"边界清楚、耗时、不需要你随时介入"的活。写任务描述的要点见 Cookbook · 把任务扔到云端

注意它曾叫 "coding agent",官方已改称 cloud agent;另外 Chat 里的 Agent 模式跑在你本地,和 Cloud agent 不是一回事。

另外两个官方入口,第一天不用练:github.com 上的 Copilot Chathttps://github.com/copilot)和 Copilot app(桌面,并行会话)。什么时候用见学习地图GitHub Spark 正在关停,不要新建应用,见 Cookbook · Spark

第 4 步:把重复的要求沉淀下来

到这一步你已经会用四种界面了。真正拉开差距的是这一步——不再每次重复描述项目约定,而是写进文件让 Copilot 自动带上。

三类机制,生命周期不同:

机制触发方式解决什么
自定义指令自动,每次对话都带恒定约束(「我们用 TypeScript strict」)
提示文件手动,/名字 调用可复用的完整任务(「按模板生成表单」)
自定义 Agent切换到该 agent角色切换(「你现在是代码审查员」)

从一个文件开始就够——在仓库根建 .github/copilot-instructions.md

markdown
# 项目约定

- TypeScript strict 模式,不允许 `any`
- 组件一律函数式 + hooks,不写 class 组件
- 测试用 Vitest

判断标准:同一句话你在 prompt 里写过三次以上,就该写进自定义指令。

写法要点和进阶(路径级指令、AGENTS.md、提示文件 frontmatter)见 Cookbook · 沉淀项目规范Cheatsheet · 自定义指令

第 5 步:接外部工具(MCP)

需要 Copilot 访问数据库、内部 API、第三方服务时,接 MCP 服务器。接好后它提供的工具出现在 # 列表里,和内置工具一样用。

重要时效提醒:GitHub App 形态的 Copilot Extensions 已于 2025-11-10 日落,官方替代方案就是 MCP。旧教程里"用 @扩展名 调用扩展"已失效。VS Code 客户端侧的 Chat 扩展不受影响,仍然支持。详情见术语表 · MCP

第 6 步:养成安全习惯

  • 永远审查生成的代码,尤其是权限判断、SQL 拼接、加密、支付相关。
  • 用自动化测试当护栏——先确认测试正确,再让它改实现。
  • 需要确认某段建议是否与公开代码高度相似时,用官方匹配日志
  • Agent 模式和 CLI 会执行命令,不确定的命令别按同意

接下来

参考资料

更完整的、按可信度排序的信息源清单见 Cheatsheet · 高质量信息源

为前端工程师打造 · 基于 VitePress 构建