审查代码修改
说明 VS Code pending edits、inline review、Keep Undo、文件级批量操作和 Source Control 审查流程。
Agent 改完文件不等于任务完成。VS Code 官方 Review AI-generated code edits 文档的核心思想是:Copilot 生成的改动会先进入 pending edits(待提交的改动),你要逐个审查,再决定 keep(保留)或 undo(撤回)。
商业项目里,pending edits 是 Agent Mode 的安全阀。它让你先看 diff,再决定是否把改动纳入工作区——少这一道,agent 的速度优势会直接变成 review 阶段的负担。
阅读目标:读完本章,你应该能在 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 控制。
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 检查。
推荐顺序:
- 先看 modified file list,确认没有越界文件。
- 再看每个文件的 inline diff。
- 对明显错误的文件直接 Undo。
- 对可疑小块继续追问 Copilot 或人工修。
- Keep 后跑测试。
- 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 做过什么。
深读:为什么 pending edits 要先于 Git diff 审查
Git diff 是最终状态,pending edits 是 AI 改动进入工作区前的第一道检查。越早发现越界改动,越少需要后面从大 diff 里拆出来。
真正高质量的 Agent workflow,是让 Copilot 快速生成候选改动,但让人类在 pending edits 阶段保留选择权。
本章自检
完成本章后,用这 4 个问题检查:
- 你是否先看了 modified file list?
- 每个文件是否都被 Keep 或 Undo,而不是默认全收?
- Keep 后是否跑了测试、类型检查或最小验证?
- PR 里是否说明了 agent 范围、执行命令和剩余风险?
通过标准:AI 改动在进入 commit 前,已经经过 pending edits、测试和 Source Control 三层检查。
官方来源
- Review AI-generated code edits —— VS Code 官方 pending edits 和 Keep / Undo 文档。
- Using agents in Visual Studio Code —— VS Code 官方 agents 总览,用于理解 agent output 的审查入口。
- Responsible use of GitHub Copilot Chat in your IDE —— GitHub 官方 responsible use 页面,用于核对 AI 输出审查责任。