用 Codex 做真实项目,Git 这一关绕不开。它改代码的速度很快,一次可能动到十几个文件,改对了皆大欢喜,改歪了得有条退路。Git 就是那条退路。
Git 和 GitHub 各管什么
| 对比 | Git | GitHub |
|---|---|---|
| 简单来说 | 本地版本管理工具 | 代码云盘加协作平台 |
| 主要作用 | 记录代码每次改了什么 | 远程保存代码,团队协作 |
| 使用位置 | 你的电脑里 | 浏览器或者云端 |
| 核心能力 | commit / branch / diff / merge | repository / issue / pull request |
| 是否必须联网 | 不需要 | 需要 |
| 和 Codex 的关系 | 它改完代码,用 Git 检查和保存 | Codex Web 常和 GitHub 配合 |
三者分工很清楚。Git 负责记录代码变化,GitHub 负责远程保存和协作,Codex 负责完成具体的编程任务。
动手前先认识的几个词
| 概念 | 简单来说 | 作用 |
|---|---|---|
| Repository | 一个代码仓库 | 存放整个项目 |
| Commit | 一次代码存档 | 记录这次改了什么 |
| Branch | 分支 | 不影响主线的前提下改代码 |
| Diff | 改动对比 | 看新增,删除,修改了什么 |
| Stage | 暂存区 | 决定哪些改动进这次 commit |
| Merge | 合并 | 把一个分支的改动合到另一个分支 |
| Conflict | 冲突 | 两边改了同一处,需要手动选 |
| Push | 推送 | 把本地代码上传到 GitHub |
| Pull | 拉取 | 把 GitHub 上的新代码同步到本地 |
| Clone | 克隆 | 从 GitHub 下载一个项目到本地 |
GitHub 那边还有几个词会一起出现。Issue 记需求和 bug,Pull Request 是改完后的合并申请,Main Branch 放稳定版本,Feature Branch 拿来开发新功能。Review 是合并前的检查,Actions 管自动测试和部署,README 是项目说明书,.gitignore 决定哪些文件不上传。
用 Codex 反而更需要版本管理
| 场景 | Git 能帮上什么 |
|---|---|
| 它改了很多代码 | 查看具体改了哪里 |
| 它改错了 | 回退到之前的版本 |
| 它删了不该删的内容 | 找回 |
| 多次让它修改 | 每次 commit 存一个阶段 |
| 想让它大胆试方案 | 用 branch 或者 worktree 隔离风险 |
| 要把项目放到 GitHub | push 到远程仓库 |
| 团队协作 | 走 PR,review,merge |
没有 Git,它改错了你很难回退。有了 Git,它可以放心试,你随时能检查和恢复。
在 Codex 里走一遍 Git 流程
- 初始化 Git,让项目开始被管理
- 写好 .gitignore,挡住垃圾文件和密钥
- 先 commit 一次,存下干净版本
- 新建分支,给它一个安全实验区
- 让它修改代码,完成具体任务
- 查看 diff,确认改了什么
- 运行项目或者构建,确认没出错
- 满意之后 commit
- push 到 GitHub
- 创建 PR,合并前再检查一次
在对话框里输入「把项目初始化成一个 Git 工程,并排除不需要的文件」,它会直接帮你写好 .gitignore。要上传到 GitHub,先在网页上新建仓库,复制仓库地址交给 Codex,然后推送。

改坏了怎么退回去
先让它改动代码,然后把当前版本提交到 Git 存好。继续改,改到不对劲的时候打开 IDE 查看代码,复制要退回的那个版本号。把这个版本号交给 Codex,让它把代码回退到指定版本。整个过程不用你记住哪一行动过。
工作树:给大胆的方案留个副本
工作树是给同一个 Git 项目额外开一个独立工作副本,相当于一个草稿本,效果满意了再合并回正式项目。普通分支虽然能切换,但每次只能在一个文件夹里操作一个分支,工作树没有这个限制。
想让它大胆改代码,给它单独开一个副本就行,主项目保持不动。要同时做多个任务,每个任务配一个工作树。方案 A 和方案 B 想比一比,分开放最清楚。改坏了不想要,直接丢掉那个工作树。做大改动或者重构,它也把污染主项目的风险压下去了。用完检查满意,合并回主干,再把这个分支删掉。

