<!-- title: 别只拿Copilot按Tab：指Issue开PR的八处暗门 -->
<!-- domain: tips-tricks -->

# 别只拿Copilot按Tab：指Issue开PR的八处暗门

如果你对 GitHub Copilot 的全部印象，还停留在"写代码时按 Tab 接受补全"，那等于买了个智能手机只用来打电话。过去一年 Copilot 已经从一个补全引擎，长成了一只能在云端自主开分支、开 PR、跑测试，还能接你公司数据库和 Jira 的工程 agent。绝大多数国内开发者手里的 Copilot 订阅（尤其是 2025 年开放免费档之后白嫖到的），实际只榨出了它 15% 的价值。这篇就把藏在 IDE 设置、仓库根目录、GitHub 云端和命令行里的八处暗门一个个拧开，每处都附上具体操作、预期效果和适用场景——目标是让你明天上班就能立刻用上其中至少三处。

---

## 暗门一：`.github/copilot-instructions.md`，把团队规范一次焊死进上下文

**操作步骤：**
1. 在仓库根目录新建文件 `.github/copilot-instructions.md`。
2. 里面写清楚四件事：技术栈与版本（如 React 18 + TypeScript 5 + Vite）、命名与目录约定、明确禁止的写法（如"禁止使用 `any`""禁止直接 `console.log` 进生产"）、测试与提交信息格式。
3. 想分场景组织，再建 `.github/copilot/` 目录，往里面丢多个 `.md`（如 `security.md`、`testing.md`），同样会被自动加载。

**预期效果：** 之后你每次打开 Copilot Chat，这份规范会作为系统级上下文自动注入，不用再每次手动粘贴"我们用的是 XX 框架"。注意它有 token 上限，写太长会被截断——保持每条一两句、用清单格式最有效。

**适用场景：** 多人协作仓库、新人接手、外包团队风格统一。配合用户级 `settings.json` 里的 `github.copilot.chat.codeGeneration.instructions`，可以再做一层"所有项目都生效"的全局规范。

---

## 暗门二：Coding Agent 云端，把 Issue 直接 Assign 给 Copilot

这是 Copilot 区别于 Cursor、Claude Code 最杀手的一点：**它在 GitHub 云端跑，不占你本地机器**。

**操作步骤：**
1. 在 GitHub 任意仓库打开一个 Issue，把写清楚需求、验收标准的 issue，Assignees 选为 `Copilot`（或点 "Assign to Copilot"）。
2. Copilot 会在云端自己拉一个 `copilot/fix-xxx` 分支，读代码、改文件、跑测试，最后开一个 PR 等你 review。
3. 不满意？直接在 issue 或 PR 里 `@copilot` 追加要求（"顺便把对应的单测补上"），它会继续改，再次 push。

**预期效果：** 把标注良好的机械任务（依赖升级、补测试、改文案、加错误处理）整个丢给云端，你下班它还在跑，第二天早上来 review PR。一台本地机器不发热、不占 GPU。

**适用场景与门槛：** 需要 Copilot Pro+、Business 或 Enterprise 订阅。免费档和普通 Pro 用户退而求其次，用暗门三里的 IDE 内 Agent Mode（本地跑，逻辑一样，只是占你本机）。

---

## 暗门三：Custom Chat Modes，自己造一个"只读审查模式"

**操作步骤：**
1. 在 VS Code 的 Copilot Chat 顶部模式切换处，选 "Manage Chat Modes" / 新建 Mode。
2. 给它取名（如 `Code Review`），并配置：允许调用哪些工具（勾掉"编辑文件""执行终端命令"，只留只读检索）、写一句系统提示（"你只输出审查意见，绝不修改文件"）。
3. 切到这个模式后再提问，它就被关进了笼子。

**预期效果：** 同一个 GPT/Claude 级别的模型，换一种"权限档位"。审查代码时它不会手痒顺手帮你改；规划阶段时它只读不写，避免污染工作区。

**适用场景：** 代码审查、写测试（建一个只允许跑 `test` 命令的模式）、技术方案规划。这是把 agent "关进沙箱"的正确姿势，比单纯靠提示词约束可靠得多。

---

## 暗门四：`#` 附件上下文，一行喂进整个仓库和报错

**操作步骤：** 在 Copilot Chat 输入框敲 `#`，会弹出上下文菜单，核心选项：

| 关键字 | 喂进去的是什么 |
|--------|----------------|
| `#codebase` | 对整个仓库做语义检索，自动找相关文件 |
| `#git` | 当前工作区的 diff（改动对比） |
| `#problems` | IDE 报错面板里的全部 error/warning |
| `#terminal` | 终端最近输出 |
| `#selection` | 你当前高亮选中的代码 |
| `#file` / `#folder` | 指定文件或目录 |

**预期效果：** 调试时一句"根据 `#problems` 和 `#terminal` 帮我分析这堆报错"，把上下文一次性凑齐，不用再复制粘贴截图。Code review 时用 `#git` 让它只针对本次改动给意见。

**适用场景：** 调试连环报错、PR 自查、理解陌生大型代码库。

---

## 暗门五：Next Edit Suggestions (NES)，预测你"下一步要改哪里"

普通补全只补当前光标；NES 会**预测你接下来在别处还要做的连带修改**。

**操作步骤：**
1. 比如你把 `user.name` 重命名成 `username`，改完第一处。
2. Copilot 推断：你大概还要把文件里其他几处 `user.name`、以及调用方一起改。它在对应位置高亮出一个"跳转点"（蓝色标记）。
3. 按 `Tab` 直接跳到下一处并应用建议，一路按下去，几秒钟扫完整文件。

**预期效果：** 跨行、跨函数的连带编辑被自动化，比重命名重构还轻量，比手动找漏改更准。

**适用场景：** 重构、批量修改、改完一处逻辑后连带更新调用方。

---

## 暗门六：MCP 扩展，让 Copilot 看懂你的数据库和 Jira

Model Context Protocol（MCP）让 Copilot 能调用外部工具，这一步把它从"懂代码"升级到"懂你的业务上下文"。

**操作步骤：**
1. 在 VS Code 设置里配置 MCP（或仓库内 `.vscode/mcp.json`），加一个 server。例如 Postgres MCP，Copilot 就能实时读你的表结构。
2. 也可在 GitHub 仓库/组织级别配置 MCP server，团队共享。
3. 之后在 Chat 里问"按 `users` 表写一个查询最近 7 天活跃用户的 SQL"，它能直接拉真实 schema，而不是瞎猜字段名。

**预期效果：** 写对照数据库 schema 的查询、对照 Linear/Jira 需求的实现时，Copilot 不再凭空编造。接 Linear MCP，它能读任务详情；接文件系统 MCP，它能访问仓库之外的目录。

**适用场景：** 数据驱动的后端开发、需求在项目管理工具里散落的团队、需要查内部 API 文档的场景。

---

## 暗门七：`gh copilot` CLI，终端里生成和解释 shell 命令

**操作步骤：**
1. 安装扩展：`gh extension install github/gh-copilot`。
2. 生成命令：`gh copilot suggest "找出当前目录下所有大于 100MB 的文件"`，它给你一段可解释的 shell。
3. 解释命令：`gh copilot explain "awk '{print \$2}' file.txt | sort -u"`，逐段讲给你听。
4. `gh copilot suggest -t shell` 还能直接执行。

**预期效果：** 记不住 `find/awk/sed` 组合不再是障碍，且每条命令都可追溯为什么这么写，避免从网上抄到危险命令。

**适用场景：** 写 CI 脚本、排查服务器、临时数据处理。

---

## 暗门八：Copilot Spaces，多仓库+设计文档打包成一个上下文

**操作步骤：**
1. 在 GitHub Copilot（网页版 chat 或企业版）里新建一个 Space。
2. 把相关仓库 + 设计文档（markdown、规格说明）一起加进去。
3. 切到这个 Space 后提问，Copilot 会跨仓库检索、跨"文档+代码"联动回答。

**预期效果：** 微服务架构下、文档与代码分离的团队，问答不再被锁在单个仓库里。问"用户登录这条链路经过哪几个服务"，它能横跨多个 repo 给你拼出答案。

**适用场景：** 微服务多仓库、文档驱动开发、跨团队交接。

---

## 暗门之间的协同：一张图看懂"哪个任务走哪条路"

```mermaid
flowchart TD
    Start[一个新任务到手] --> Q1{任务机械、描述清楚?}
    Q1 -- 是 --> Cloud[暗门二: Assign to Copilot<br/>云端开 PR]
    Q1 -- 否 --> Q2{需要我亲自改?}
    Q2 -- 改一处带多处 --> NES[暗门五: Next Edit<br/>连带修改]
    Q2 -- 跨多文件重构 --> Edits[Copilot Edits<br/>多文件并行]
    Q2 -- 需要业务上下文 --> Q3{上下文在哪?}
    Q3 -- 仓库内 --> Hash[暗门四: #codebase/#git]
    Q3 -- 数据库/Jira --> MCP[暗门六: MCP 扩展]
    Q3 -- 多仓库+文档 --> Spaces[暗门八: Copilot Space]
    Cloud --> Review{review 时怕它乱改?}
    Review -- 是 --> Mode[暗门三: 只读审查 Mode]
    Review -- 否 --> Done1[合并 PR]
    NES --> Done2[提交]
    Hash --> Done3[解决]
    Mode --> Done1
    Style[暗门一: 规范文件] -.全局注入.-> Cloud
    Style -.全局注入.-> Edits
    Style -.全局注入.-> Hash
```

注意暗门一（规范文件）是底层基建——它对几乎所有其他暗门都生效，所以**第一个该做的就是把它建好**，后面每一个 agent 调用都受益。

---

## 信息差总结：你知道的 vs 别人在用的

| 维度 | 90% 用户的用法 | 10% 高手的实际用法 |
|------|----------------|---------------------|
| 触发方式 | 写代码时按 Tab 接受补全 | 把 Issue 指给 Copilot，云端开 PR |
| 团队规范 | 每次手动粘贴"我们用 XX" | `.github/copilot-instructions.md` 自动注入 |
| 上下文 | 复制粘贴报错 | `#problems` + `#terminal` 一行喂入 |
| 工具权限 | 默认全开，偶尔闯祸 | Custom Mode 关进只读沙箱 |
| 业务数据 | 让它瞎猜表结构 | MCP 接真实数据库 schema |
| 多仓库 | 只能问单个 repo | Spaces 跨仓库+文档联动 |
| 改动连带 | 手动找漏改 | NES 跳转式连带修改 |
| 终端 | 上网搜命令 | `gh copilot suggest` 生成+解释 |

每一个对比背后，都是同一个订阅、同一个模型，产出效率的几个数量级差距。

---

## 行动指南：明天就能落地的四步

1. **今天（10 分钟）：** 在你最常用的仓库根目录建 `.github/copilot-instructions.md`，把技术栈和禁忌写进去。零成本，立刻对所有 chat 生效。
2. **本周：** 在 VS Code 里用一次 `#codebase` + `#problems` 组合解决一个真实 bug，体会"不用复制粘贴"的差别。
3. **本周：** 装上 `gh copilot` CLI，用它生成一条你平时要查的 `find/awk` 命令。
4. **有 Pro+/Business 订阅的话：** 挑一个标注清楚的小 Issue，Assign 给 Copilot，体验一次"睡觉时它开 PR"。
5. **进阶：** 配一个 MCP（先从 Postgres 或文件系统 server 起步），让 Copilot 看懂你仓库之外的世界。

记住一个心法：Copilot 的订阅费是固定的，你用 15% 和用 80%，付的钱一样。这八处暗门，本质都是在把同一个 token 预算，花在更高杠杆的地方。

---

## 参考来源

- [GitHub Docs：添加仓库自定义指令（copilot-instructions.md）](https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot)
- [GitHub Docs：使用 Copilot Coding Agent](https://docs.github.com/en/copilot/using-github-copilot/using-github-copilot-coding-agent)
- [VS Code Docs：Chat 中的 Agent Mode 与自定义模式](https://code.visualstudio.com/docs/copilot/chat-agent-mode)
- [GitHub Docs：用 MCP 扩展 Copilot](https://docs.github.com/en/copilot/customizing-copilot/extending-github-copilot-with-mcp)
- [GitHub CLI Manual：gh copilot](https://cli.github.com/manual/gh_copilot)

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
