Codex / Claude Code Git 实践

September 7, 2026 · View on GitHub

English | 中文

Codex、Claude Code 这类 AI 编程工具会让代码修改速度变快,也会让 Git 工作区更容易变乱。

这篇只讨论一个问题:使用 AI 编程工具时,如何让 Git 历史仍然清楚、可审查、可回滚。工具能力、官方来源和版本差异由AI 编程工具的 Git 集成实践集中维护;这里保留跨工具都适用的 Git 实践与流程。

核心原则

1. 每个任务一个分支

不要让 AI 直接在主分支上探索。

<integration-branch> 是仓库实际使用的集成分支,例如 mainmasterdevelop。先让 git status --porcelain 没有输出;有其他 owner 的编辑时,保留现场并使用独立 worktree。

推荐:

git status --porcelain
git switch <integration-branch>
git pull --rebase origin <integration-branch>
git switch -c ai/refactor-order-validator

如果最终要合入,可以整理成正常业务分支名:

fix/order-timeout-validation
feat/github-governance-guide

2. 多 Agent 并行用 worktree

工具能否创建或管理 worktree,要以工具事实速查中的官方来源和本机版本为准。本节只处理 Git 层面的要求:并行任务不能共享同一个工作目录。

本地手工创建:

git worktree add ../repo-task-a -b ai/task-a
git worktree add ../repo-task-b -b ai/task-b

每个目录单独启动对应工具:

cd ../repo-task-a
codex

cd ../repo-task-b
claude

工具启动命令会随版本变化;确认方式见工具事实速查

3. AI 改完先审 diff

永远先看:

git status
git diff --stat
git diff

重点检查:

  • 有没有无关文件
  • 有没有格式化噪音
  • 有没有临时日志
  • 有没有 secret 或内部配置
  • 有没有锁文件和依赖变化
  • 有没有 public API 行为变化

4. 大 diff 先拆 commit

AI 一次改很多文件很常见,但人类不应该按大杂烩合入。

部分暂存前先确认这是干净或隔离的任务工作区,git diff --cached 里没有其他任务的内容。发现其他 owner 的 staged、unstaged 或 untracked 编辑时,停止在这里拆分,不要用 reset 或清理命令腾位置。

推荐拆成:

test(order): cover timeout validation
fix(order): reject expired timeout config
docs(order): explain timeout behavior

命令:

git add -p
git commit -m "test(order): cover timeout validation"
git add -p
git commit -m "fix(order): reject expired timeout config"

5. AI Review 只能做辅助

AI 可以帮你做第一轮风险扫描:

请审查当前 git diff。
只输出具体风险,按严重程度排序。
重点检查行为范围、测试有效性、安全风险、无关改动。

最终合入仍然由人类负责。

推荐工作流

创建分支
-> 让 AI 修改
-> 人类审 diff
-> 拆 commit
-> 跑测试
-> AI 做第一轮 Review
-> 人类 Review
-> 开 PR
-> CI 通过后合入

工具无关的执行约定

  • 任务说明要写清目标、范围、验收方式和风险,避免无关重构混入。
  • 每个并行任务绑定独立分支或 worktree,完成后用清楚的分支和目录名保留上下文。
  • 合入前由人检查 diff、测试结果和回滚路径;远程任务额外保留 PR、日志、验证命令和人工复核记录。
  • .env、本地配置和密钥文件不应默认复制到临时工作区。
  • 任务完成后确认 worktree 状态,再清理已经不需要的目录:
git worktree list
git worktree remove ../repo-task-a

各工具的当前能力和 Git 集成差异见AI 编程工具的 Git 集成实践

常见反模式

1. 同一个目录里跑多个 AI 工具

风险:互相覆盖文件,分支状态混乱。

建议:一个任务一个 worktree。

2. AI 改完直接 commit

风险:无关文件、调试代码、配置变更混入。

建议:先 git diff --stat,再 git add -p

3. 让 AI 自行决定合入

风险:工具缺少团队发布、回滚、责任边界上下文。

建议:AI 可以给建议,合入决定由人负责。

延伸阅读