Copilot 与 Gemini
这一课你将能做到
- 用 GitHub Copilot 的 Inline 补全、Chat、Agent 三种模式覆盖不同开发场景
- 用 instruction 文件给 Copilot 注入项目约定
- 说清楚 Gemini 在 AI 编程版图中的位置和适用场景
为什么要学
GitHub Copilot 是装机量最大的 AI 编程工具——它直接长在你已有的 IDE 里(VS Code、JetBrains、Visual Studio、Neovim),不用换编辑器,几乎没有迁移成本。对企业来说,它背靠 GitHub/微软,采购和合规路径最短,很多公司第一个被批准的 AI 工具就是它。
Gemini 是 Google 的大模型,通过 Android Studio 内置、Gemini Code Assist 插件、以及 CLI 工具进入开发流程,其超长上下文窗口(百万级 token)在「读超大代码库」场景有独特优势。
人话:如果 Cursor 是「为 AI 重做的编辑器」,Copilot 就是「给现有编辑器装 AI 插件」。前者体验更深,后者阻力最小。真实团队选型往往不看你最喜欢哪个,而看公司能批哪个——所以两个都得会。
先建立图像
Copilot 三种工作模式:
┌──────────────────────────────────────────┐
│ Inline 补全:打字时灰色预测,Tab 接受 │ ← 高频、轻量
│ Chat(Ctrl+Alt+I):侧边栏问答,可带文件 │ ← 中频、理解/生成
│ Agent 模式:跨文件改动+跑命令 │ ← 低频、完整任务
└──────────────────────────────────────────┘
Gemini 入口:
Android Studio 内置 / VS Code 插件 / Gemini CLI(终端)
跟着做
步骤 1:安装并确认三种模式可用
VS Code 里安装 GitHub Copilot 扩展,登录 GitHub 账号(需订阅,有免费额度)。确认:
- 打开任意
.java文件,输入注释// 按创建时间倒序查询文章列表,回车看是否出现灰色补全(Inline 模式) - 按
Ctrl+Alt+I打开 Chat 面板 - Chat 输入框左下角可切换 Ask / Edit / Agent 模式
步骤 2:用 Inline 补全的正确姿势
Inline 不是「AI 帮你写」,是「AI 猜你下一步」。高效用法:
// 先写好方法签名和注释,让补全有方向
/**
* 查询某标签下的置顶文章
* @param tagId 标签 id
* @return 置顶文章列表,按创建时间倒序
*/
public List<Article> listTopByTag(Long tagId) {
// 停在这里,Copilot 会基于注释+上下文补全实现
}
上下文来源:当前文件、打开的标签页、相似代码片段。所以打开相关文件会显著提升补全质量——写 Mapper 前先把对应 entity 打开。
步骤 3:用 Chat 做代码理解
选中一段看不懂的老代码,在 Chat 里问:
解释选中代码的逻辑,特别注意第 23 行的空指针风险
或引用整个文件(输入 # 引用文件,或把文件拖入 Chat):
#OrderService.java 这个类里哪些方法有事务问题?
步骤 4:配置项目级指令
创建 .github/copilot-instructions.md(Copilot 自动读取的项目约定文件):
# 项目约定
- Java 17 + Spring Boot 3 + MyBatis-Plus
- 统一返回 Result<T>,不要直接返回 entity
- 异常用 BusinessException,不要裸抛 RuntimeException
- 测试用 JUnit 5 + Mockito
这是 Copilot 版的「rules」,所有 Chat 和补全都会受影响。
步骤 5:用 Agent 模式完成一个小任务
Chat 切到 Agent 模式,输入:
给 ArticleController 的列表接口加分页参数校验:
page 最小 1,size 最大 100,超出范围抛 BusinessException。
同时更新对应的单元测试。
Agent 会自己改代码、创建/更新测试、跑测试验证。完成后逐个文件审查 diff。
步骤 6:体验 Gemini 的超长上下文
安装 Gemini Code Assist 插件(或用 Gemini CLI),它的差异化场景是超大上下文。验证方式:把一个几十万行项目的多个核心文件一次性喂给它,问架构问题:
基于这些文件,画出订单从创建到履约的完整状态流转,
指出状态机里可能遗漏的异常分支。
普通工具上下文装不下的分析任务,Gemini 的百万 token 窗口能装下。
讲清楚要点
- 三种模式分工:Inline 处理「手比脑慢」的重复输入;Chat 处理理解和问答;Agent 处理跨文件完整任务。按任务粒度选模式,别用 Agent 干 Inline 的活(重),也别用 Chat 干 Agent 的活(得自己搬运)。
- 上下文质量决定一切:打开相关文件、写好注释和签名、
#引用文件,都是在给 AI 递弹药。抱怨补全质量差之前,先检查上下文给够没有。 .github/copilot-instructions.md必须进 Git:团队共用一份约定,新人 clone 下来 AI 就懂规矩。- Copilot 的企业优势在合规:企业版承诺代码不用于训练,有 IP 侵权赔偿条款,这是它在采购流程中赢过新兴工具的关键。
- Gemini 的差异化是上下文长度:不是「更好的 Cursor 替代品」,而是超大代码库分析、长文档理解的专用武器。
你可能会懵的地方
-
Copilot 免费版够不够用? 有月度补全和 Chat 额度限制,个人学习够用;团队开发上 Pro/Business。具体额度以 GitHub 官网当时政策为准。
-
Copilot 和 Cursor 能同时用吗? 技术上可以(Cursor 是 VS Code fork,能装 Copilot 扩展),但补全会打架,建议在一个编辑器里只开一个补全来源。
-
Gemini CLI 和 Claude Code 是不是一类东西? 是,都是终端 Agent。Gemini CLI 免费额度慷慨、上下文大;Claude Code 在工具链集成和代码任务完成率上口碑更稳。按任务试,别信仰式站队。
-
Copilot 的补全为什么有时候很蠢? 它主要看「当前文件+打开的 tabs」。文件刚建、上下文空白时它只能瞎猜。写两行、开几个相关文件,质量立刻上来。
-
公司不让代码出站,怎么办? Copilot Business 可关遥测且不用代码训练;更严格的场景用内网部署的开源模型方案(如通过 Ollama/私有网关接入)。选型时把「代码数据流向」作为第一评估项。
错法对照
| 错法 | 问题 | 正解 |
|---|---|---|
| 空白文件等补全 | 无上下文,质量随机 | 先写注释和签名,给 AI 锚点 |
| 补全一路 Tab 到底 | 小错累积成大坑 | 每接受一段扫一眼逻辑 |
| Chat 里口头重复约定 | 下个会话失效 | 写进 copilot-instructions.md |
| 用 Chat 手动搬运多文件改动 | 容易漏改、贴错 | 改用 Agent 模式自动落盘 |
| 迷信单一工具 | 场景错配效率低 | 按任务选工具,允许多工具共存 |
卡点急救
- 补全不出现:检查右下角 Copilot 图标状态;确认当前文件类型没被禁用;大文件/网络差时延迟正常,等一秒。
- Chat 回答文不对题:没用
#引用文件,它不知道你在说哪段代码。把相关文件拖进 Chat 再重问。 - Agent 模式改了不该改的文件:在 prompt 里明确「只允许修改 X 目录下的文件」;完成后
git diff --stat检查改动面是否符合预期。
面试常问
-
如何在团队推广 Copilot 并量化收益? 高分回答:先试点小组用 2-4 周,指标看「接受率、PR 周期时间、返工率」;配套建设 instructions 文件和规范培训;注意「代码量提升」不等于「价值提升」,最终看交付周期和缺陷率。
-
Copilot 生成的代码涉及开源协议风险吗? 有「代码建议与公开代码高度相似」的可能。Copilot 提供「阻止匹配公开代码」的开关,企业版含 IP 赔偿条款;团队层面要求对所有 AI 生成代码做 license 扫描。
-
Gemini 的超长上下文什么时候真正有用? 整体架构分析、跨模块影响面评估、大型重构前的依赖梳理——需要「同时看到大量代码」的场景。日常补全和单文件生成用不上这个优势。
自测三问
- Copilot 的 Inline、Chat、Agent 三种模式分别适合什么粒度的任务?
.github/copilot-instructions.md解决什么问题?- Gemini 在 AI 编程工具版图中的差异化优势是什么?什么场景该用它?
小结一句话
Copilot 是阻力最小的企业级 AI 编程入口,Gemini 是超长上下文的特种部队——会用三种模式,懂各自边界,才算真正上手。
延伸
- GitHub Copilot 官方文档
- Gemini Code Assist 文档
- 下一课:v0 与 Lovable——用 AI 生成 UI 的正确姿势。