代码管理:Git 与 GitHub
用 Codex 做真实项目必知的 Git/GitHub 核心概念与工作流,含 Worktree 隔离实验。
用 Codex 做真实项目,迟早要和 Git、GitHub 打交道。一句话拆清楚三者关系:Git 记录本地代码变化,GitHub 远程保存与协作,Codex 完成具体的编程任务。 懂这套组合,改错能回退,实验能隔离,协作能走 PR。
#Git vs GitHub
| 维度 | Git | GitHub |
|---|---|---|
| 本质 | 本地版本管理工具 | 代码云端存储 + 协作平台 |
| 运行位置 | 你的电脑 | 浏览器 / 云端 |
| 核心操作 | commit、branch、diff、merge | repository、issue、PR、Actions |
| 网络要求 | 不需要 | 需要 |
| 与 Codex 的关系 | Codex 改完后用 Git 检查和保存 | Codex Web/Cloud 版常与 GitHub 配合 |
#必懂 Git 概念
| 概念 | 含义 |
|---|---|
| Repository | 代码仓库,存放整个项目及其历史 |
| Commit | 一次存档,记录这次改了什么 |
| Branch | 分支,独立开发线,不影响主线 |
| Diff | 改动对比,看具体变了哪些行 |
| Stage | 暂存区,commit 前先把改动放进来 |
| Merge | 把一条分支的改动合并到另一条 |
| Conflict | 冲突,两边改了同一处,需手动选择保留哪个 |
| Push | 把本地 commit 推送到远端 |
| Pull | 把远端更新拉取同步到本地 |
| Clone | 把远端仓库完整下载到本地 |
#必懂 GitHub 概念
| 概念 | 含义 |
|---|---|
| Repository | 项目仓库,云端版的 Git repo |
| Issue | 问题与需求的记录单 |
| Pull Request (PR) | 代码合并申请,方便 review 后再合入主线 |
| Main Branch | 主分支,存放稳定可用版本 |
| Feature Branch | 功能分支,开发新功能时使用 |
| Review | 代码审查,合并前检查 |
| Actions | 自动化流程,触发测试 / 构建 / 部署 |
| README | 项目说明文档 |
| .gitignore | 忽略文件清单,防止上传无关或敏感文件 |
#为什么用 Codex 更需要 Git
Codex 每次任务可能改动大量文件。没有版本控制,出错很难回头;有了 Git:
- 可审查:Codex 改完用
git diff看到底动了哪里 - 可回退:改坏了,找到上一个好的 commit 恢复
- 可分阶段:多步改动每步 commit,进度清晰
- 可隔离实验:用 branch 或 worktree 让 Codex 大胆试,主线不受影响
- 可协作:push 到 GitHub,走 PR / review / merge 流程
没有 Git 保底,让 Codex 大改会很焦虑。有了 commit 记录,随时可以检查和还原,才能放心给它更大权限。
#在 Codex 里用 Git 的标准流程
初始化仓库
在项目根目录运行 git init,把项目纳入版本控制。
写好 .gitignore
告诉 Codex:"帮我写一份 .gitignore,排除 node_modules、.env 和其他不需要追踪的文件。"它会根据技术栈生成合适的清单。
首次 commit
在 Codex 动任何东西之前,先保存一个干净的初始版本:git add -A && git commit -m "init"。

新建任务分支
每个任务单独开分支,比如 git checkout -b feat/add-login。这样即便 Codex 改坏,主线也不受影响。
让 Codex 实现需求
在对话框描述目标,让它读代码、写代码、跑命令。
查看 diff
Codex 完成后,在终端运行 git diff 或在 IDE 里查看改动,确认符合预期。
运行验证
跑测试或启动项目确认功能正常,有问题继续让 Codex 修。
Commit 保存
满意后:git add -A && git commit -m "feat: 描述这次改动"。
Push 到 GitHub
git push origin feat/add-login,把分支推到远端备份。
创建 PR
在 GitHub 上从功能分支发起 Pull Request,review 通过后合入主线。
#上传到 GitHub 的前提
| 准备项 | 说明 |
|---|---|
| GitHub 账号 | 注册并登录 |
| 本地 Git | 已安装并 git init |
| GitHub 仓库 | 在 GitHub 新建 Repository,复制地址 |
| 认证 | 配好 SSH Key 或 Personal Access Token |
| .gitignore | 确认敏感文件已排除 |
把仓库地址发给 Codex,告诉它:"把当前项目推到这个 GitHub 仓库",它会处理 remote add 和首次 push。
#代码回滚
找到目标版本
运行 git log --oneline 或在 IDE 的 Git 面板里查看历史,找到想恢复的那次 commit,复制 commit 哈希(如 a3f8c12)。
告诉 Codex 回退
把哈希粘贴给 Codex:"帮我回退到 commit a3f8c12,保留这之后的改动作为未提交状态。"它会根据你的需求选择合适的 git 命令。
强制回退(git reset --hard)会丢失未提交的改动。让 Codex 操作前先确认当前工作区已 commit 或 stash。
#Git Worktree:给 Codex 开独立草稿本
普通分支切换时,整个工作目录会跟着变。Worktree 让你在同一个 Git 仓库里同时维护多个独立的工作目录——相当于给项目开了几个互不干扰的草稿本。
#为什么需要 Worktree
| 场景 | 说明 |
|---|---|
| 让 Codex 大胆改 | 单独副本实验,主项目目录完全不动 |
| 并行多任务 | 每个任务一个 worktree,互不阻塞 |
| 方案对比 | A / B / C 方案各一个目录,直观比较 |
| 快速丢弃 | 实验改坏了,直接删掉这个 worktree |
| 大规模重构 | 在隔离副本里重构,满意后再合并,不污染主线 |
#基本用法
# 在主仓库旁边创建一个新的工作副本,关联到新分支
git worktree add ../my-project-experiment feat/experiment
# 查看当前所有 worktree
git worktree list
# 实验完毕,合并分支后删除 worktree
git worktree remove ../my-project-experiment
git branch -d feat/experiment典型流程:在主目录正常工作 → 开新 worktree 交给 Codex 实验 → Codex 改好后 git diff 审查 → 满意就合并回主线,不满意直接 git worktree remove 扔掉,主项目分毫未动。
把 worktree 路径告诉 Codex,让它在那个目录里工作:cd ../my-project-experiment && codex "...",或在对话里说明当前工作目录。
Support / 支持
Need help? / 需要帮助?
接入、计费与模型异常可邮件联系;服务可用性以状态页为准。
For setup, billing, or model issues, email us. Check the status page for uptime.
也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right

