Codex 改坏了代码怎么办?先别急着让它再改一遍。先看两件事:项目有没有用 Git,改坏的内容提交了没有。本期按三种情况讲怎么找回原来的版本,用到的命令都放在下面,可以直接复制。
本期资料:全部命令(可复制) · 视频文稿 · 相关教程:Codex 重连 5 次才回答?看日志找出 4 种原因,对症解决 · Codex额度怎么算?5小时和每周限额、剩余在哪看、用完怎么办?
画面说明
视频里的错误是用教学提示词让 Codex 故意改出来的,演示项目是一个可以随时丢弃的示例。界面名称以录制时的 Codex 桌面应用为准,版本更新后文字和位置可能不同。“没有用 Git”一段用的是示意画面。
00:00|先判断属于哪种情况
- 还没提交:在 Codex 的变更面板里还原。
- 已经提交:用
git revert撤回。 - 项目没有用 Git:只能试试 VS Code 的时间线,不能保证找回。
00:24|先看清 Codex 改了什么
- 在这一轮回复下面点“查看变更”,右边打开变更面板。
- 范围切到“上一轮”,这里只显示 Codex 最近这一轮改的内容。
- 红色是删掉的,绿色是新加的。逐个文件点开,找到改坏的地方。
变更面板只在用了 Git 的项目里才有。项目没用 Git 时,Codex 会提示你创建仓库,这种情况看下面的“没有用 Git”。
01:01|还没提交:在变更面板里还原
- 范围切到“未暂存”。
- 只还原一小块:鼠标停在这一块改动上,点右边的还原图标,在弹出的确认框里点确认。其他改动保留。
- 全都不要:点面板底部的“还原全部”,确认。
- 回到网页刷新,重新操作一遍原来坏掉的功能,确认已经恢复。
特别注意:变更面板显示的是所有没提交的改动,包括你自己手改的。点“还原全部”,你自己没提交的改动也会一起还原;Codex 新建的文件也会被删掉。自己改过东西的,先单独还原 Codex 改坏的那几块。
01:47|已经提交:用 git revert 撤回
- 打开终端,先看提交记录。最上面一行是最新的提交。
看提交记录
git log --oneline
- 如果改坏的就是最新那次,撤回它:
撤回最新一次提交
git revert HEAD
- Git 会打开编辑器让你确认提交说明。如果是黑底的 Vim,输入下面的内容并回车,就是保存并关闭:
打开的是黑底 Vim 时:保存并关闭
:wq
- 再运行一次
git log --oneline,会多出一条撤回的提交;回到网页刷新确认。 - 如果改坏的不是最新那次,把 HEAD 换成那一行前面的编号:
撤回更早的某一次提交(把尖括号部分换成那一行前面的编号)
git revert <那一行前面的编号>
git revert 不删除原来的记录,它新加一条反向改回去的提交。撤回错了,还能再撤回来。
02:38|没有用 Git:还能尝试什么
项目从来没用过 Git 的话,能救回来的不多。可以试试 VS Code:打开这个文件,看左下角的“时间线”,点开早一点的版本恢复。
VS Code 时间线只记录在 VS Code 里保存过的版本;没在 VS Code 里打开、保存过的文件,这里是空的。不能保证一定找回。救完之后,第一件事是把 Git 用起来:Codex 的变更面板会提示你创建仓库。
03:18|以后怎么防:动手前先存档
- 第一次用 Git,先设置一次名字和邮箱,以后不用再设:
第一次用 Git:设置名字和邮箱(只需一次,换成你自己的)
git config --global user.name "你的名字" git config --global user.email "你的邮箱"
- 以后每次让 Codex 改代码之前,先存一个档;改坏了,就用上面的方法退回到这里:
每次让 Codex 动手前:存一个档
git add -A git commit -m "改之前存档"
- 运行
git log --oneline能看到这条记录,就说明存档成功了。 - 更省事的办法,是把规矩写给 Codex,放进项目的 AGENTS.md:
写进 AGENTS.md 的规则
开始改代码前先运行 git status;有没提交的改动,先停下来问我。
AGENTS.md 怎么写,下期专门讲。
本期全部命令
和正文里的命令相同,集中在这里方便复制。名字、邮箱和提交编号换成你自己的。
看提交记录
git log --oneline
撤回最新一次提交
git revert HEAD
撤回更早的某一次提交(把尖括号部分换成那一行前面的编号)
git revert <那一行前面的编号>
打开的是黑底 Vim 时:保存并关闭
:wq
第一次用 Git:设置名字和邮箱(只需一次,换成你自己的)
git config --global user.name "你的名字" git config --global user.email "你的邮箱"
每次让 Codex 动手前:存一个档
git add -A git commit -m "改之前存档"
写进 AGENTS.md 的规则
开始改代码前先运行 git status;有没提交的改动,先停下来问我。
一句话总结
没提交的,在变更面板里还原;已经提交的,用 git revert;以后每次动手前,先存个档。
限制与说明
- 界面名称(“查看变更”“变更面板”“上一轮”“未暂存”“还原全部”)按录制时的 Codex 桌面应用;更新后可能变化。
- “还原全部”会连你自己没提交的改动一起还原,Codex 新建的文件也会被删掉。
- VS Code 时间线只记录在 VS Code 里保存过的版本,不能保证找回。
- 建议先在可以丢弃的示例项目里练一遍,再用到自己的项目上。
视频文稿
展开本期完整视频文稿(7 个章节,与视频口播一致)
先判断改坏后的三种情况
让 Codex 改了一下代码,结果页面坏了。别急着让它再改一遍。这期讲三种情况:还没提交的,在 Codex 里一键还原;已经提交的,一条命令撤回;最后讲以后怎么防。先看你属于哪种情况:项目有没有用 Git,改坏的东西提交了没有。
先看清 Codex 改了什么
第一步先别动手,先看清它到底改了什么。在这一轮回复下面点“查看变更”,右边会打开变更面板。范围切到“上一轮”,这里只显示 Codex 最近这一轮改的内容。红色是删掉的,绿色是新加的。一个个文件点开看,找到是哪里改坏的。注意,这个面板只在用了 Git 的项目里才有。项目没用 Git 的话,Codex 会提示你创建一个,这种情况看第三部分。
还没提交:还原改动
要还原,先把范围切到“未暂存”。只有一小块改坏了,就把鼠标停在这一块上,点右边的还原图标,其他改动都留着。全都不要,就点底部的“还原全部”,确认一下。回到网页刷新一下,恢复成改之前的样子,这就算找回来了。
有一点要特别小心:变更面板里显示的是所有没提交的改动,包括你自己手改的。点还原全部,你自己的改动也会一起没了。所以自己改过的,先单独还原 Codex 改坏的那几块。Codex 新建的文件也会一起删掉。
已经提交:git revert 撤回
如果改坏的东西已经提交了,变更面板里就看不到了。打开终端,先看一下提交记录。最上面一行就是最新的提交,也就是改坏的那次。输入 git revert HEAD,回车。它会打开一个编辑器让你确认提交说明。如果是这种黑底的 Vim,输入冒号 wq,回车,就是保存并关闭。再看记录,多了一条撤回的提交,网页也恢复了。如果改坏的不是最新那次,就把 HEAD 换成那一行前面的编号。用 revert 的好处是,原来的记录都还在,它只是新加一条反着改回去的提交,撤回错了还能再撤回来。
没有用 Git:还能尝试什么
如果项目从来没用过 Git,能救回来的就不多了,先说实话。有一个地方可以试试:用 VS Code 打开这个文件,看左下角的时间线。你在 VS Code 里保存过的版本会记在这里,点开早一点的版本,就能恢复。不过只有你自己在 VS Code 里保存过的版本才有记录。没打开过的文件,这里是空的。救完之后,第一件事就是把 Git 用起来。Codex 的变更面板会提示你创建仓库,点一下就行。
动手前存档与 AGENTS.md
第一次用 Git,先设置一次名字和邮箱,以后就不用再设了。以后每次让 Codex 改代码之前,先运行这两条命令,存一个档。改坏了,就用刚才讲的方法退回到这里。看到这条记录,就说明存档成功了。更省事的办法是把这条规矩写给 Codex:开始改之前先检查有没有没提交的改动,有就先停下来问你。这个文件叫 AGENTS.md,下期专门讲怎么写。总结一下:没提交的,在变更面板里还原;已经提交的,用 git revert;以后每次动手前,先存个档。
资料与下期预告
这期用到的命令都放在官网文章里,可以直接复制。这里是西楚极客,我们继续用 AI,把真正能运行的项目做出来。下期见。
按视频章节回看
- 00:00 先判断改坏后的三种情况
- 00:24 先看清 Codex 改了什么
- 01:01 还没提交:还原改动
- 01:47 已经提交:git revert 撤回
- 02:38 没有用 Git:还能尝试什么
- 03:18 动手前存档与 AGENTS.md
- 04:04 资料与下期预告
Codex 新手必会
- 第1篇|本期:Codex改坏了代码怎么办?3 种情况,怎么找回原来的版本|新手必会
下期讲 AGENTS.md 怎么写。相关教程:Codex 重连 5 次才回答?看日志找出 4 种原因,对症解决 · Codex额度怎么算?5小时和每周限额、剩余在哪看、用完怎么办?
照着做遇到问题,或者想看 Codex 的哪类新手问题,欢迎到 YouTube 视频评论区 留言。回到全部视频文章。