Codex

代码管理:Git 与 GitHub

用 Codex 做真实项目必知的 Git/GitHub 核心概念与工作流,含 Worktree 隔离实验。

用 Codex 做真实项目,迟早要和 Git、GitHub 打交道。一句话拆清楚三者关系:Git 记录本地代码变化,GitHub 远程保存与协作,Codex 完成具体的编程任务。 懂这套组合,改错能回退,实验能隔离,协作能走 PR。

#Git vs GitHub

维度GitGitHub
本质本地版本管理工具代码云端存储 + 协作平台
运行位置你的电脑浏览器 / 云端
核心操作commit、branch、diff、mergerepository、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 的标准流程

1

初始化仓库

在项目根目录运行 git init,把项目纳入版本控制。

2

写好 .gitignore

告诉 Codex:"帮我写一份 .gitignore,排除 node_modules、.env 和其他不需要追踪的文件。"它会根据技术栈生成合适的清单。

3

首次 commit

在 Codex 动任何东西之前,先保存一个干净的初始版本:git add -A && git commit -m "init"

在 Codex 中初始化 Git
4

新建任务分支

每个任务单独开分支,比如 git checkout -b feat/add-login。这样即便 Codex 改坏,主线也不受影响。

5

让 Codex 实现需求

在对话框描述目标,让它读代码、写代码、跑命令。

6

查看 diff

Codex 完成后,在终端运行 git diff 或在 IDE 里查看改动,确认符合预期。

7

运行验证

跑测试或启动项目确认功能正常,有问题继续让 Codex 修。

8

Commit 保存

满意后:git add -A && git commit -m "feat: 描述这次改动"

9

Push 到 GitHub

git push origin feat/add-login,把分支推到远端备份。

10

创建 PR

在 GitHub 上从功能分支发起 Pull Request,review 通过后合入主线。

#上传到 GitHub 的前提

准备项说明
GitHub 账号注册并登录
本地 Git已安装并 git init
GitHub 仓库在 GitHub 新建 Repository,复制地址
认证配好 SSH Key 或 Personal Access Token
.gitignore确认敏感文件已排除

把仓库地址发给 Codex,告诉它:"把当前项目推到这个 GitHub 仓库",它会处理 remote add 和首次 push

#代码回滚

1

找到目标版本

运行 git log --oneline 或在 IDE 的 Git 面板里查看历史,找到想恢复的那次 commit,复制 commit 哈希(如 a3f8c12)。

2

告诉 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 扔掉,主项目分毫未动。

Git Worktree

把 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