新手上路(九):提交前总是不安心?git diff | codex exec 一条命令,Codex 做你的第一读者 Codex 代码审查——用 Codex 做你的第一读者Windows 10/11 · Codex CLI v0.130.0 · Git 2.30 · DeepSeek V4 Pro · dsv4-cc-proxy-tray · 2026-06-02 · 中度时效一、这篇教程解决什么问题一句话定位Codex 没有 Claude Code 的/review命令但这不代表它不会做代码审查。通过git diff管道 codex exec 精准的审查 prompt你可以让 Codex 在任何时候帮你审代码——提交前、PR 中、随手选中一段代码。这篇给你三套方案、三套 prompt 模板、一套审查意见分级体系。跳读指南只想抄审查 prompt 的直接跳到 第五节 审查 prompt 模板设计。想学git diff管道的跳到 第四节 管道输入实战。想对比 Codex 和 Claude Code 审查能力的跳到 第七节 与 Claude Code /review 对比。遇到问题的跳到 Debug 章节。阅读前提Codex CLI 已安装并能正常启动了解 Git 基础git diff、git logdsv4-cc-proxy-tray 已启动读完能得到什么三套审查方案对话式随手审、管道式自动化、预设指令式日常持续三套审查 prompt 模板快速安检30 秒、标准五维审查、专项安全审计——拿来即用git diff | codex exec管道的完整实战——含 6 种 diff 参数组合审查意见分级体系blocker / warning / suggestion 结构化输出格式二、Codex 代码审查的三种方式2.1 全景对比方式怎么用适用场景优势劣势对话式终端或 IDE 对话中粘贴代码 审查 prompt快速看一段代码、随手审查零门槛无 diff 上下文手动复制管道式git diff | codex exec -p 审查审查当前改动、PR review自动化有 diff 上下文需要熟悉 exec 模式预设指令式在instructions或 Profile 中预设审查规则日常持续使用一键触发规则统一维度固定不够灵活2.2 方式一对话式审查在正在进行的 Codex 对话中直接审审查以下代码从正确性和安全性两个维度分析 def delete_user(user_id): query f\DELETE FROM users WHERE id {user_id}\ db.execute(query) return {\status\: \ok\}适用随手看一个函数、快速边界条件检查。2.3 方式二管道式审查git diff输出通过管道直接送给 Codex exec# 审查暂存区即将提交的内容gitdiff--cached|codex exec-p审查这些改动列出所有安全问题和逻辑错误# 审查最近一次提交gitdiffHEAD~1|codex exec-p审查这次提交的所有改动# 审查当前分支 vs main 的全部差异gitdiffmain|codex exec-p审查所有改动优势Codex 看到完整 diff知道改动上下文。可嵌入脚本和 CI/CD。2.4 方式三预设指令式审查在config.toml中预设审查规则instructions 审查规则当被要求审查代码时自动使用 审查维度正确性 安全性 性能 可读性 规范 每个问题标注 severity: blocker / warning / suggestion 输出格式文件:行号 | severity | 问题描述 | 建议修复 使用时只需一句“审查 src/api.py”。三、codex exec模式——管道审查的引擎3.1 exec vs 交互模式维度交互式codexcodex exec输入多轮对话一次性 prompt 管道数据输出对话流单次结果可用-o保存多轮追问支持不支持一次完成适用开发、调试审查、自动化、CI/CD3.2 审查场景常用参数# 轻量审查日常提交前Flash¥0.02/次gitdiff--cached|codex exec-p快速审查安全问题--model deepseek-v4-flash# 深度审查PRPro¥0.10-0.30/次gitdiffHEAD~1|codex exec-p review-prompt.md--model deepseek-v4-pro# 输出到文件gitdiffmain|codex exec-p审查-o pr-review-report.md四、Git diff 管道输入实战4.1 参数速查命令审查什么场景git diff工作区未暂存的改动写完后随手审git diff --cached暂存区提交前的最后一关git diff HEAD~1最近一次提交提交后复核git diff HEAD~3最近三次提交PR 全量审查git diff main当前分支 vs main准备合入主分支git diff main -- src/api.py特定文件 vs main重点审一个模块4.2 完整提交前审查流程# Step 1暂存改动git add src/api.py tests/test_api.py# Step 2送 Codex 审gitdiff--cached|codex exec-p 审查以上 git diff 的所有改动。 维度按优先级1.安全性 2.正确性 3.性能 4.可读性 5.规范 格式文件:行号 | severity | 问题描述 | 建议修复 severity: blocker / warning / suggestion 没有问题说审查通过。不要客套话。# Step 3根据结果决定# blocker → 修完再提交# 通过 → 提交4.3 用文件存 prompt!-- 保存为项目 review-prompt.md -- 你是资深代码审查员。审查以上 git diff。 审查维度按优先级 1. 安全性SQL注入、XSS、敏感信息泄露、权限绕过 2. 正确性逻辑错误、边界条件、空指针、类型错误 3. 性能N1查询、不必要的循环、内存泄漏 4. 可读性命名、函数长度、嵌套深度 输出格式 文件:行号 | severity | 问题描述 | 建议修复gitdiff--cached|codex exec-p review-prompt.md五、三套审查 prompt 模板5.1 模板 A快速安检30 秒出结果审查以上 git diff。只关注安全问题SQL 注入、XSS、敏感信息暴露、权限绕过。 发现安全问题标 blocker。没有发现说安全审查通过。V4-Flash 跑¥0.02/次。5.2 模板 B标准五维审查PR Review你是资深代码审查员。审查以上 git diff。 审查维度按优先级 1. 安全性SQL注入、XSS、敏感信息泄露、权限绕过、路径遍历 2. 正确性逻辑错误、边界条件空值/空列表/越界、类型不匹配、异常处理缺失 3. 性能N1查询、循环内重复计算、不必要的IO 4. 可读性命名是否表意、函数是否过长(50行)、嵌套是否过深(3层) 5. 规范是否遵循项目现有风格、是否遗漏必要测试 格式文件:行号 | severity | 问题描述 | 建议修复 severity: blocker / warning / suggestion 没有发现任何问题回复审查通过。不要客套话。V4-Pro 推荐。¥0.10-0.30/次。5.3 模板 C专项安全审计你是安全审计专家。深度安全审计以上 git diff。 检查清单 □ 输入验证所有用户输入是否经过校验和清理 □ 认证/授权新端点是否有权限检查 □ SQL注入是否使用参数化查询 □ 敏感数据是否有密码/token硬编码或打印到日志 □ 路径遍历文件操作是否限制访问范围 □ 错误处理异常信息是否泄露内部实现细节 格式文件:行号 | severity | 漏洞类型 | 问题描述 | 攻击向量 | 修复方案 涉及 auth/login/session/payment/user/email 的代码额外标注。5.4 Prompt 设计要点要素推荐原因角色设定“你是资深代码审查员”收窄输出风格优先级安全性排第一按序分配注意力输出格式指定每行格式方便 grep/解析否定条件“不要客套话”Codex 默认会加零问题“没有问题就说审查通过”避免无中生有六、审查意见分级6.1 三级体系级别含义处理blocker安全漏洞、数据丢失、功能错误必须修修完再提交warning性能隐患、边界遗漏、不规范写法评估后决定suggestion更好的写法、命名建议视情况采纳6.2 输出示例src/api.py:42 | blocker | SQL 注入直接拼接 user_id | 改用参数化查询 src/api.py:56 | warning | 缺少异常处理 | try/except DatabaseError src/api.py:78 | suggestion | 函数过长(68行) | 拆分 validate_user_input() tests/test_api.py:23 | warning | 缺少空user_id边界测试 | 添加 test_delete_empty_id七、与 Claude Code/review对比维度Codex execClaude Code/review触发git diff | codex exec -p 审查/review审查深度取决于 prompt 设计内置流程较深灵活性完全自定义受限于内置逻辑安全专项需自写 prompt/security-review独立命令速度快Flash 5-15s较慢15-30s费用¥0.02-0.15/次¥0.10-0.30/次CI/CD✅ exec 天然适配⚠️ 需-p模式各自最佳场景场景推荐提交前快速安检Codex exec FlashPR 深度审查Claude Code/review安全审计Claude Code/security-review自定义审查维度Codex exec 自定义 promptCI/CD 自动审查Codex exec八、完整工作流8.1 提交前git add src/api.py gitdiff--cached|codex exec-p快速审查安全问题--model deepseek-v4-flash# 通过 → git commit# 不通过 → 修 → 重新审查8.2 PR 深度审查 交叉验证# Codex 审gitdiffmain|codex exec-p review-prompt.md--model deepseek-v4-pro-o codex-review.md# Claude Code 审# 另一个终端claude → /review# 合并两份报告 → blocker 必须修交集优先8.3 批量历史审查gitdiffHEAD~5|codex exec-p review-prompt.md-o recent-5-review.md九、Debug——五个最常见问题Debug #1管道输入为空现象git diff | codex exec -p 审查 # Codex没有收到任何代码改动根因所有改动已暂存git add后git diff无输出。修复想看什么正确命令未暂存改动git diff暂存区git diff --cached最近一次提交git diff HEAD~1当前分支 vs maingit diff main验证git diff --cached --stat先确认有输出。Debug #2审查结果只有前几个维度现象prompt 列了五个维度输出只覆盖了安全性后面的没提。根因Codex 按序分配注意力。前几个维度发现很多问题输出 token 就消耗在那了。修复# ✅ 要求每个维度至少给结论 对安全性、正确性、性能三个维度分别独立给出审查意见。 每个维度至少一条没发现问题就说[维度名]未发现问题。Debug #3输出过于笼统——没有文件:行号现象“这段代码可以优化有几个安全问题”——无具体位置和修复。根因prompt 没要求结构化输出格式。修复# ✅ 强制结构化 每个问题严格按此格式一行一条 文件:行号 | severity | 问题描述 | 一行修复建议 不在此格式内的内容不要输出。Debug #4exec 模式超时现象git diff main审查到一半超时。根因diff 太大 2000 行或 DeepSeek API 高峰期排队。修复# 分文件审gitdiffmain--src/module_a.py|codex exec-p review-prompt.md gitdiffmain--src/module_b.py|codex exec-p review-prompt.md# 或用 Flash 加速gitdiffmain|codex exec-p只列出安全问题--model deepseek-v4-flashDebug #5Codex 对没有问题的代码编造问题现象代码改动只有一行注释变化Codex 仍列出三个安全建议。根因没有在 prompt 中设定零问题 审查通过的条件。修复# prompt 中加这一句 如果改动中没有发现任何问题只回复审查通过四个字。不要为了凑输出而编造建议。十、速查卡10.1 审查命令场景命令提交前安检git diff --cached | codex exec -p 快速审查安全问题 --model deepseek-v4-flashPR 审查git diff main | codex exec -p review-prompt.md -o pr-review.md最新 commitgit diff HEAD~1 | codex exec -p review-prompt.md特定文件git diff main -- src/api.py | codex exec -p review-prompt.md安全审计git diff main | codex exec -p security-audit.md --model deepseek-v4-pro10.2 Prompt 要素要素写法角色“你是资深代码审查员”优先级安全性 正确性 性能 可读性输出“文件:行号 | severity | 描述 | 修复”禁止“不要客套话、不要总结”零问题“没有就说’审查通过’”十一、扩展阅读新手上路七双轨并行 — 交叉审查工作流新手上路五自定义指令 — instructions 预设审查规则新手上路六成本优化 — Flash vs Pro 审查成本[新手上路十Headless 与 CI/CD](新手上路十Headless 模式与 CI CD——Codex 进入自动化流水线.md) — exec 模式进阶----即将发布十二、参考文献Codex CLI Exec Mode (OpenAI Docs)Claude Code Review CommandsGit Diff Documentation