Codex /review模式详解:未提交变更与分支对比指南
Codex 提交前审查有三种模式:①未暂存的本地更改使用 codex review --unstaged,仅扫描尚未 git add 的变更;②分支对比推荐 codex review --from A --to B,规避本地未提交内容的干扰;③已暂存内容则用 codex review --staged,精准定位即将提交的快照中的隐患。
在代码提交前发现潜在问题但无法确定审查方式?不必困惑。未暂存的本地修改与跨 Git 分支对比,两者触发机制、风险级别和输出细节均有本质区别。
审查未暂存的本地代码变更
第一步,聚焦那些已经修改但尚未执行 git add 的本地变更。这特别适用于刚调整少量代码后快速排查低级错误的场景。
打开终端,切换到项目根目录,直接运行:
codex review --unstaged
Codex 自动扫描所有未暂存的差异,跳过已提交或已暂存的内容。注意:当工作区存在大量未跟踪文件(如临时配置、日志),Codex 默认忽略它们,以防噪声干扰。如需包含这些文件,可添加 --include-untracked 参数,但启用后可能引发误报,特别是含有本地调试 mock 文件时。
执行后会输出结构化报告,包含问题类型(如空指针访问、硬编码密钥)、对应文件与行号以及修复建议。全程只读分析,不会自动修改代码。
对比两个分支进行增量代码审查
提交合并请求(MR)时,若需基于团队主干(如 main)评估功能分支的改动安全性与可靠性,应采用分支对比审查。以下提供三种常用方式。
方法一:通过 base 参数指定基准分支
codex review --base main --background
方法二:显式指定源分支与目标分支,控制粒度更细
codex review --from feature/login-v2 --to main
方法三:通过 Git diff 管道调用,便于集成至 pre-commit 钩子
git diff main...feature/login-v2 | codex exec "分析此差异,定位所有可能触发运行时异常的位置"
三种方法中,方法二最为稳妥——它强制 Codex 仅关注两个分支间真实的差异,不受本地未提交更改的干扰。而方法一若当前分支 HEAD 与 main 之间存在未推送的本地提交,Codex 仍会将其纳入审查,可能导致范围不必要地扩大。
审查已暂存但尚未提交的变更
这一状态常被忽略:已执行 git add 但未 git commit。此时 Codex 可精确识别暂存区快照中的问题。
第一步:核实暂存区内容
git status --cached
第二步:令 Codex 仅扫描暂存区
codex review --staged
第三步:检视结果并决定是否继续提交
codex result
此步骤的关键在于:它比 --unstaged 更接近最终提交内容,又比全量分支对比更轻量。若你习惯分批 add 后统一 commit,那么 --staged 应是每次 add 后必跑的检查点。
一点需单独说明:--staged 不会读取工作区未被 add 的修改,即使这些修改与已暂存文件针对同一内容——这是有意设计,而非缺陷。
