codex cli 可安全审查 git 提交:用 --base head~3 分析连续提交,--base a1b2c3d^..a1b2c3d 精准审查单次提交,merge 提交推荐 git show --first-parent --patch | codex review --files,支持 json 导出和高亮终端输出。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想快速知道某次 Git 提交改了什么、有没有引入风险,又不想手动 checkout + diff 对比,Codex CLI 可以直接基于 commit hash 或相对引用做只读分析,不改动工作区,也不依赖当前分支状态。
用 codex review 审查指定 commit
第一步:确保你已在项目根目录下,且该仓库已通过 git init 初始化并有提交历史。
第二步:运行命令审查 HEAD 前三次的提交:codex review --base HEAD~3。这个参数会让 Codex 拉取从 HEAD~3 到当前 HEAD 的所有变更(即包含这三次提交的 diff),然后进行语义级分析。
第三步:若要精准审查单个 commit(比如哈希为 a1b2c3d),必须用双点语法:codex review --base a1b2c3d^..a1b2c3d。【a1b2c3d^ 表示父提交,.. 表示范围,缺一不可】 直接写 --base a1b2c3d 会被解释为“与 a1b2c3d 分支比较”,不是你想要的单次提交内容。
审查某次 merge 提交的变更集
merge 提交默认有两个父提交,Git 不会自动展开其变更。Codex 默认只看第一个父提交(即当前分支头),容易漏掉被合并进来的改动。
方法一:强制扁平化差异
执行 git show --no-commit-id --name-only -r --pretty=format:'' a1b2c3d | xargs git show --no-commit-id --pretty=format:'' --patch a1b2c3d 先人工提取出真正改动的文件列表和 patch,再把输出重定向给 Codex 分析——但太绕。
方法二(推荐):用 --first-parent 配合 Codex
先创建临时 patch:git show --first-parent --format='' --patch a1b2c3d > /tmp/merge-diff.patch,再运行 codex review --files /tmp/merge-diff.patch。Codex 会把 patch 当作待审代码处理,跳过 Git 层解析,直接分析语义。
导出审查结果供团队复核
方法1:生成带时间戳的 JSON 报告codex review --base HEAD~1 --json --output "review_$(date +%Y%m%d_%H%M%S).json"
方法2:输出为带颜色的终端文本,方便快速扫读codex review --base HEAD~2 --verbose。该模式会高亮风险关键词(如 “TODO”、“FIXME”、“hardcode”、“password”),但不会输出完整 diff —— 它只展示 Codex 认为值得人眼确认的上下文片段。
注意:JSON 输出中 "commit_range" 字段记录的是实际分析的起止 commit,不是你传入的 --base 值。如果传入的是 HEAD~3,而当前 HEAD 已变,该字段会反映真实计算范围。











