广告位联系
返回顶部

Codex配合使用Git安全修改代码的完整流程

Ai 来源:互联网 作者:佚名 发布时间:2026-10-10 16:27:45 人浏览
摘要

用 Codex 改代码时,我最强烈的建议是:一定要配合 Git 使用。 Codex 很适合帮我们读代码、改代码、排查 bug、补文档、做 review。但只要它开始修改文件,问题就来了:你要知道它改了什么、哪

用 Codex 改代码时,我最强烈的建议是:一定要配合 Git 使用。

Codex 很适合帮我们读代码、改代码、排查 bug、补文档、做 review。但只要它开始修改文件,问题就来了:你要知道它改了什么、哪些改动可以留下、哪些改动应该撤掉、出了问题能不能回到修改前。

这时候 Git 就很重要。

OpenAI 官方文档里也建议,在让 Codex 开始任务前后创建 Git checkpoint,方便后续回退;Codex 的 code review 功能也依赖 Git 仓库里的 diff 来检查改动。简单说,Git 是你和 Codex 协作时的“安全绳”。

这篇文章就按实际使用流程讲清楚:

修改前应该做什么

  • Codex 修改过程中怎么看 diff
  • 修改后怎么检查和提交
  • 回滚前应该怎么判断

一、为什么 Codex 一定要配合 Git

如果你只是让 Codex 解释代码,不一定需要 Git。

但只要你让它做这些事,就建议先准备好 Git:

  • 修改业务代码
  • 重构模块
  • 新增文件
  • 删除无用逻辑
  • 调整依赖和配置
  • 批量改文档
  • 修复 bug

原因很简单:Codex 可以帮你做事,但你仍然需要判断它做得对不对。Git 能让你看到完整改动,也能让你在不满意时撤回。

我自己的习惯是:

  • 没有 Git,不让 Codex 大改。
  • 工作区不干净,不让 Codex 直接动手。
  • 任务太大,不让 Codex 一次做完。

二、修改前:先确认工作区是否干净

第一步永远是看状态。

1

git status

如果输出里有 modified、deleted、untracked,就说明当前工作区已经有改动。

这时候先别急着让 Codex 修改。你要先判断这些改动是谁做的:

  • 是你刚才手动改的
  • 是上一轮 Codex 改的
  • 是编辑器自动格式化的
  • 是临时文件或构建产物

如果你在一个已经很乱的工作区里继续让 Codex 改,后面很容易分不清“哪些是它改的,哪些是原本就有的”。

三、修改前:最好新建一个分支

如果任务稍微复杂一点,建议单独开分支。

1

git switch -c codex/fix-login-error

分支名可以按任务来起:

1

2

3

4

codex/fix-login-error

codex/add-readme

codex/refactor-auth

codex/update-api-client

这样做的好处是:

  • 当前任务有独立边界
  • 不会直接污染主分支
  • 后续可以单独提交、单独回滚
  • 如果改坏了,直接丢弃这个分支也更轻松

如果你不想建分支,至少也要保证当前分支已经有一个干净的提交点。

四、修改前:把已有改动先处理掉

如果 git status 显示有未提交改动,通常有三种处理方式。

方式一:先提交

如果这些改动已经完成,可以先提交:

1

2

git add .

git commit -m "保存当前工作进度"

然后再让 Codex 开始新任务。

方式二:先 stash

如果这些改动还没完成,但又想临时放起来,可以用:

1

git stash push -m "临时保存修改"

后面需要恢复时再看:

1

2

3

git stash list

git stash show -p stash@{0}

git stash apply stash@{0}

Git 官方文档里对 stash 的描述很直接:它适合临时保存当前工作目录和暂存区状态,然后让工作区回到干净状态。

方式三:先开新 worktree

如果你手头的改动不能动,但又想让 Codex 做另一个任务,可以考虑单独开一个 worktree。

这个方式更适合熟悉 Git 的用户。它的好处是:你可以给 Codex 一个干净目录,让它只在那个目录里做当前任务。

五、给 Codex 的第一个提示词:先看状态,不要动手

在真正修改前,可以先这样问:

1

2

3

4

5

6

请先检查当前项目的 Git 状态,不要修改任何文件。

告诉我:

1. 当前分支是什么

2. 是否有未提交改动

3. 是否有未跟踪文件

4. 是否适合开始新的修改任务

这个提示词很实用。

它能让 Codex 先帮你看一眼当前现场。

如果状态不干净,你可以继续让它解释:

1

2

请根据当前 Git 状态,帮我判断哪些文件可能是本次任务无关改动。

不要修改文件,只做分析。

六、修改中:让 Codex 小步提交思路,而不是一次改到底

不要一上来就说:

1

帮我重构整个登录模块。

更稳的方式是拆成三步。

第一步,定位:

1

2

请先定位登录模块相关文件,不要修改代码。

列出相关组件、接口调用、状态管理和错误处理位置。

第二步,方案:

1

2

3

请给出最小修改方案。

要求说明准备修改哪些文件、每个文件改什么、可能有什么风险。

暂时不要动手。

第三步,执行:

1

2

3

4

可以按方案修改。

只修改刚才列出的文件。

不要做无关优化。

修改后告诉我实际改了哪些文件。

这样 Git diff 会更清楚,后续 review 和回滚也更容易。

七、修改中:随时看 diff

Codex 改完一轮后,不要急着继续给新任务。

先看 diff。

看所有改动概览:

1

git diff --stat

看具体未暂存改动:

1

git diff

看已经暂存的改动:

1

git diff --staged

Git 官方文档里说明,git diff 可以查看工作区相对于暂存区的变化,git diff --staged 则用于查看已经暂存、准备提交的变化。

如果你只想看某个文件:

1

git diff -- src/pages/Login.tsx

这个习惯非常重要。

Codex 说它只改了 A 文件,但你最好自己用 Git 再确认一次。

八、修改后:让 Codex 写变更摘要

修改完成后,可以让 Codex 做一次总结:

1

2

3

4

5

6

请总结本轮修改:

1. 修改了哪些文件

2. 每个文件改了什么

3. 为什么这样改

4. 是否存在风险点

5. 如何手动验证

然后你再对照:

1

2

git diff --stat

git diff

如果 Codex 的总结和 Git diff 对不上,就要提高警惕。

九、修改后:先 review,再提交

如果你用的是支持 /review 的 Codex 环境,可以让它 review 当前改动。

1

/review

也可以手动写:

1

2

3

4

5

6

7

请 review 当前未提交改动。

重点检查:

1. 是否有回归风险

2. 是否有边界情况遗漏

3. 是否有无关修改

4. 是否有潜在安全问题

5. 是否需要补测试

OpenAI 官方文档说明,Codex 可以 review uncommitted changes、commit 或 base branch,并且 review 过程不会修改工作区。这个特性很适合提交前检查。

十、修改后:分批暂存,不要无脑 add .

如果改动很小,git add . 问题不大。

但如果 Codex 改了多个文件,建议分批暂存:

1

2

git add src/pages/Login.tsx

git add src/utils/auth.ts

如果你想更精细一点,可以用:

1

git add -p

这样可以按 hunk 选择要提交的内容。

为什么不建议长期无脑 git add .?

因为它可能把这些东西也加进去:

  • 临时文件
  • 日志文件
  • 本地配置
  • 调试代码
  • Codex 顺手生成但你不需要的文件

提交前再看一次:

1

git diff --staged

确认没问题后提交:

1

git commit -m "fix: improve login error message"

十一、回滚前:先判断你要撤的是哪一种改动

回滚不是一个命令解决所有问题。

你先要判断自己要撤掉的是什么。

场景 建议操作
某个文件的未暂存修改不想要了 git restore <file>
某个文件已经暂存,但想取消暂存 git restore --staged <file>
想撤掉某个新文件 先确认文件内容,再手动删除
想撤掉本次 Codex 全部未提交修改 先看 git diff,再逐个 restore
已经提交了,但还没推送 视情况新建修正提交,或用 reset
已经推送了 更建议用 git revert 生成反向提交

我不建议新手一上来就复制危险命令。尤其是 git reset --hard 和 git clean,它们会丢弃大量本地内容,除非你非常确定,否则不要随手用。

十二、回滚前:让 Codex 先解释,不要让它直接删

如果你不确定该怎么撤,可以先这样问 Codex:

1

2

请根据当前 Git diff,判断如果我要撤回本次修改,应该撤哪些文件。

不要执行任何回滚命令,只给我建议。

再让它具体一点:

1

2

3

4

5

请把当前修改分成三类:

1. 建议保留

2. 可以撤回

3. 需要我人工确认

不要修改文件。

这一步能避免你一冲动把有用改动也删掉。

十三、一个安全的回滚流程

如果你想撤掉 Codex 的某次修改,可以按这个顺序来:

1

2

3

4

5

6

1. git status

2. git diff --stat

3. git diff

4. 让 Codex 解释哪些改动属于本次任务

5. 只 restore 明确不要的文件

6. 再次 git diff 确认结果

对应命令大概是:

1

2

3

4

5

git status

git diff --stat

git diff

git restore src/pages/Login.tsx

git diff --stat

重点是:先看,再撤。

不要在没看 diff 的情况下直接清空所有修改。

十四、一个完整示例:让 Codex 修登录报错

假设你要让 Codex 修登录失败提示。

第一步:准备 Git 环境

1

2

git status

git switch -c codex/fix-login-message

第二步:让 Codex 先定位

1

2

请先定位登录失败提示相关代码,不要修改任何文件。

告诉我相关页面、接口调用和错误处理分别在哪里。

第三步:让 Codex 给方案

1

2

3

4

请给出最小修改方案。

目标:登录失败时展示更明确的错误提示。

要求:不改变登录接口,不影响注册页面。

暂时不要修改代码。

第四步:允许修改

1

2

3

可以按方案修改。

只修改登录页面和错误提示相关文件。

不要做无关重构。

第五步:检查 diff

1

2

git diff --stat

git diff

第六步:让 Codex review

1

2

请 review 当前修改。

重点检查是否影响正常登录、注册跳转、表单校验和错误提示展示。

第七步:提交

1

2

git add src/pages/Login.tsx

git commit -m "fix: improve login error message"

这样一套下来,你会非常清楚:

  • 任务从哪里开始
  • Codex 改了什么
  • 改动有没有越界
  • 如果出问题怎么回退

十五、适合收藏的提示词模板

修改前

1

2

请先检查当前 Git 状态,不要修改任何文件。

告诉我当前分支、未提交改动、未跟踪文件,以及是否适合开始新任务。

修改中

1

2

请只完成当前任务,不要做无关优化。

如果发现需要修改额外文件,请先说明原因,等我确认。

修改后

1

2

3

4

5

请总结本轮修改:

1. 改了哪些文件

2. 每个文件改了什么

3. 有哪些风险

4. 如何验证

回滚前

1

2

请根据当前 Git diff,判断哪些改动应该保留,哪些可以撤回,哪些需要人工确认。

不要执行任何回滚命令。

十六、总结

Codex 和 Git 搭配起来,真正的价值不是“让 AI 随便改代码”,而是让整个过程可控:

1

2

3

4

5

修改前有 checkpoint

修改中能看 diff

修改后能 review

不满意能回滚

最终能提交成清晰 commit

我现在用 Codex 的基本原则是:

  1. 先看 git status
  2. 复杂任务先开分支
  3. Codex 先分析,再修改
  4. 改完先看 diff
  5. 提交前让它 review
  6. 回滚前先让它解释改动

这样用起来会稳很多,也更像一个正常的开发协作流程。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计