---
title: "审查代码修改"
description: "说明 VS Code pending edits、inline review、Keep Undo、文件级批量操作和 Source Control 审查流程。"
verifiedAt: "2026-05-06"
---

Agent 改完文件不等于任务完成。VS Code 官方 Review AI-generated code edits 文档的核心思想是：Copilot 生成的改动会先进入 pending edits（待提交的改动），你要逐个审查，再决定 keep（保留）或 undo（撤回）。

> [!IMPORTANT]
> 商业项目里，pending edits 是 Agent Mode 的**安全阀**。它让你先看 diff，再决定是否把改动纳入工作区——少这一道，agent 的速度优势会直接变成 review 阶段的负担。

> [!TIP]
> **阅读目标**：读完本章，你应该能在 VS Code 里审查 AI 改动、接受或回退，并把结果交给测试和版本控制。

## 1. Pending edits 是什么

VS Code 官方页面说明，AI 代码修改在编辑器里以 pending edits 形式显示。它们和 ordinary edits 不同：你可以在接受前检查，每个 changed line 都有标记。

典型入口：

- 文件里直接看到 inline diff。
- Chat response 里看到 modified file list。
- Source Control view 里看到 pending edits。
- 编辑器 overlay 中看到 Keep / Undo 控制。

```mermaid
flowchart TD
    Agent["Agent 修改代码"] --> Pending["Pending edits"]
    Pending --> Inline["Inline diff"]
    Pending --> List["Modified files list"]
    Pending --> SC["Source Control view"]
    Inline --> Decision{"逐项处理"}
    List --> Decision
    SC --> Decision
    Decision -->|Keep| Keep["保留改动"]
    Decision -->|Undo| Undo["撤回改动"]
    Keep --> Test["运行测试 / 类型检查"]
    Test --> Commit["提交或继续 review"]

    style Pending fill:#fef3c7,stroke:#d97706,stroke-width:2px
    style Undo fill:#fee2e2,stroke:#dc2626,stroke-width:2px
    style Test fill:#dcfce7,stroke:#16a34a,stroke-width:2px
```

## 2. 审查粒度

官方页面覆盖几种审查方式：

- **逐个编辑审查**：在 changed line 上看 AI 改了什么。
- **文件级审查**：对某个文件 Keep 或 Undo。
- **批量审查**：通过 Chat response 或 Source Control 处理所有文件。
- **普通 diff 审查**：把 pending edits 当成普通 Git diff 检查。

推荐顺序：

1. 先看 modified file list，确认没有越界文件。
2. 再看每个文件的 inline diff。
3. 对明显错误的文件直接 Undo。
4. 对可疑小块继续追问 Copilot 或人工修。
5. Keep 后跑测试。
6. Source Control 里再做最终 diff review。

## 3. Keep 不等于 commit

Keep 只是把 AI 改动保留到工作区，不等于已经通过工程验收。

Keep 后还要检查：

- 是否只改了计划中允许的文件。
- 是否引入新依赖、配置、脚本或权限。
- 是否修改了敏感路径。
- 是否有未解释的删除。
- 测试是否真实运行并通过。
- Commit message 是否说明 AI 参与的范围和验证结果。

## 4. Undo 和重新规划

Undo 不是失败。它说明 pending edits 的某一部分不应该进入代码库。

触发 Undo 的典型情况：

- 改了不该改的目录。
- 删除了必要逻辑。
- 用错误 API 或旧版本写法。
- 生成了无法解释的复杂代码。
- 没有测试入口却改了高风险逻辑。

Undo 后不要继续在原 prompt 上无限修补。更稳的做法是缩小任务，或回到 Plan agent 重新拆分。

## 5. 团队审查清单

建议把 Agent Mode 审查写进 PR 模板：

- Agent 的原始任务是什么。
- 允许修改哪些目录。
- 实际修改哪些文件。
- 哪些 terminal commands 被执行。
- 哪些 pending edits 被 Undo。
- 运行了哪些测试。
- 还有哪些人工 review 风险。

这样 reviewer 不需要猜 agent 做过什么。

<details>
<summary>深读：为什么 pending edits 要先于 Git diff 审查</summary>

Git diff 是最终状态，pending edits 是 AI 改动进入工作区前的第一道检查。越早发现越界改动，越少需要后面从大 diff 里拆出来。

真正高质量的 Agent workflow，是让 Copilot 快速生成候选改动，但让人类在 pending edits 阶段保留选择权。
</details>

## 本章自检

完成本章后，用这 4 个问题检查：

1. 你是否先看了 modified file list？
2. 每个文件是否都被 Keep 或 Undo，而不是默认全收？
3. Keep 后是否跑了测试、类型检查或最小验证？
4. PR 里是否说明了 agent 范围、执行命令和剩余风险？

通过标准：AI 改动在进入 commit 前，已经经过 pending edits、测试和 Source Control 三层检查。

## 官方来源

- [Review AI-generated code edits](https://code.visualstudio.com/docs/copilot/chat/review-code-edits) —— VS Code 官方 pending edits 和 Keep / Undo 文档。
- [Using agents in Visual Studio Code](https://code.visualstudio.com/docs/copilot/agents/overview) —— VS Code 官方 agents 总览，用于理解 agent output 的审查入口。
- [Responsible use of GitHub Copilot Chat in your IDE](https://docs.github.com/en/copilot/responsible-use-of-github-copilot-features/responsible-use-of-github-copilot-chat-in-your-ide) —— GitHub 官方 responsible use 页面，用于核对 AI 输出审查责任。

## 接下来去哪

<Cards>
  <Card title="Cloud Agent" description="如果需要把任务交给远程 agent 和 PR review，继续学习 Cloud Agent。" href="/docs/github-copilot/official/04-cloud-agent" />
  <Card title="实战 Playbook" description="把 Agent Mode 放进 TDD、PR summary 和 code review 流程。" href="/docs/github-copilot/official/10-practical-playbooks" />
</Cards>
