codex 修改完代码后,怎么只导出最后一轮 diff?

目前用codex的主要工作流是:
codex 负责执行修改,修改完成后,再把结果交给 ChatGPT 网页版做一次独立审核。

其实就是一句话:codex负责执行,网页端负责审核与决策。

经常遇到一个问题,网页版提示把修改后的内容发给它,但看着 codex 那个 Review 里显示出的 diff 内容, 又有点着急,因为并不好直接复制。

  • 直接从界面里复制出来以后,经常不是标准的 patch 格式,原本 diff 里很重要的 +- 和上下文信息也不太好区分,如果修改只有几行的话,还可以手工核对,补上 +-符号,但数量多了眼睛要看花。
  • 试过频繁 commit,人为制造一个明确的 git 边界,然后再比较前后的修改。能用,但为了 Review 一次修改专门创建 commit,就成了“刷绿墙”了。
  • 还有直接把修改过的几个文件打包,然后上传到网页版。

这些办法都有一定效果,但每次做到这里,工作流都会被打断。无论是打包,还是复制后完善格式。
有一天我想到,codex 的 UI 既然能够准确显示“这一轮改了什么”,那它总得在某个地方保留上一轮和这一轮的状态。

顺着这个方向找下去,最后发现 codex 留下的 turn diff 相关 git refs:

refs/codex/turn-diffs/checkpoints/

真正需要的是“codex 最后一轮修改”,那就比较最后两个 checkpoint,再把 diff 导出来就行。

最终方案

Mac上,默认使用 zsh。

打开:

~/.zshrc

加入下面这段:

codexpatch() {
    local refs
    local output

    refs=$(git for-each-ref \
        --format='%(refname)' \
        refs/codex/turn-diffs/checkpoints/ \
        | sort -t/ -k7n \
        | tail -2)

    if [ "$(echo "$refs" | wc -l | tr -d ' ')" -lt 2 ]; then
        echo "❌ 找不到两个 Codex turn checkpoints"
        return 1
    fi

    output="${1:-$HOME/Downloads/codex-last-turn-$(date +%Y%m%d-%H%M%S).patch}"

    git diff \
        "$(echo "$refs" | head -1)" \
        "$(echo "$refs" | tail -1)" \
        > "$output"

    if [ $? -eq 0 ]; then
        echo "✅ Patch exported:"
        echo "$output"
    else
        echo "❌ git diff failed"
        return 1
    fi
}

保存以后执行:

source ~/.zshrc

在 codex 项目目录里,只需要输入:

codexpatch

默认会保存在 Downloads 目录:

~/Downloads/codex-last-turn-20260923-153000.patch

也可以自己指定文件名:

codexpatch review.patch

review.patch 保存在当前目录。

指定完整路径:

codexpatch ~/Downloads/review.patch

这个脚本只解决一个问题:

把 codex 刚刚做完的这一轮修改快速拿出来。

为什么不用 git diff 呢? git diff 看到的是当前工作区的累计修改,从上一次提交开始,codex可能已经修改过好多轮了。而我们要解决的是另一件事:只提取 codex 最后一轮到底改了什么。

工作流

现在工作流是下面这个样子:

codex 执行修改
      ↓
codexpatch
      ↓
生成 last-turn.patch
      ↓
上传 chatGPT 网页版
      ↓
独立 Review
      ↓
有问题 → 回 codex 修
没问题 → commit

给网页版时,甚至不需要写很复杂的 Prompt。
相比直接上传完整代码文件,模型更容易把注意力集中在“这次发生了什么变化”上。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇