Claude Code / Codex Git 版本管理完整使用指南
本文档涵盖在 Claude Code 与 Codex 中进行 Git 版本管理的所有常用场景,每个场景均附带可直接使用的中文提示词。
目录
- 概述
- 初始化与基础配置
- 日常提交
- 分支管理
- 查看历史与变更
- 远程仓库操作
- [Pull Request 管理](#Pull Request 管理)
- 合并与冲突解决
- 版本回退与撤销
- 标签管理
- [Stash 暂存](#Stash 暂存)
- [Worktree 隔离开发](#Worktree 隔离开发)
- [.gitignore 管理](#.gitignore 管理)
- 高级操作
- 安全注意事项
- 常见问题与最佳实践
- 提示词速查表
1. 概述
Claude Code 中 Git 的工作方式
- Claude Code 通过 Bash 工具 执行 Git 命令,与你在终端中使用 Git 完全一致
- 内置
/commit斜杠命令,可以自动分析变更并生成规范的提交信息 - 支持通过
gh(GitHub CLI)进行 PR、Issue 等 GitHub 操作 - 所有危险操作 (force push、reset --hard、删除分支等)会先征求你的确认
- 提交信息末尾会自动附加
Co-Authored-By: Claude署名
Codex 中 Git 的工作方式
- Codex 同样是通过终端命令执行 Git,本质上就是替你运行
git status、git diff、git commit、git push等命令 - Codex 没有固定的
/commit斜杠命令,更常见的方式是直接用自然语言下达 Git 任务 - 默认不会擅自提交、推送或重写历史;只有你明确要求后才会执行
- 对
git reset --hard、git push --force、删除分支、覆盖文件等高风险操作会非常谨慎,通常会再次确认 - 更适合"先检查、再执行"的流程:先让它查看
git status/git diff --stat/git log,再决定提交、推送或回退
两者差异速览
| 能力 | Claude Code | Codex |
|---|---|---|
| 快速提交 | /commit |
自然语言要求"检查并提交" |
| Worktree | 可用内置 .claude/worktrees/ 工作流 |
通常直接使用 git worktree add/list/remove |
| PR / GitHub | 常用 gh 命令 |
同样可通过 gh,前提是本机已安装并登录 |
| 风险控制 | 根据权限模型确认 | 根据沙箱/审批和危险命令规则确认 |
权限说明
在 Claude Code 和 Codex 中,Git 操作都会受权限或审批机制影响:
- 只读操作(status、log、diff):通常自动执行
- 写入操作(commit、push):根据权限设置可能需要确认
- 危险操作(force push、reset --hard、删除分支):始终需要确认
- Codex 额外注意:如果操作涉及受限目录、跨工作区写入或高风险命令,可能会先请求你授权
2. 初始化与基础配置
场景 2.1:为新项目初始化 Git 仓库
提示词:
帮我在当前项目目录初始化一个 Git 仓库,创建合适的 .gitignore 文件,然后做一个初始提交
进阶提示词:
帮我初始化 Git 仓库,这是一个 Python 科研项目,.gitignore 要排除数据文件(.csv、.mat、.npy)、
模型文件(.pth、.pkl)、Jupyter 的 checkpoint、conda 环境目录,然后做初始提交
场景 2.2:查看/修改全局 Git 配置
提示词:
查看我当前的 Git 全局配置
帮我把 Git 全局用户名改为 xxx,邮箱改为 xxx@xxx.com
场景 2.3:配置 SSH 密钥连接 GitHub
提示词:
帮我检查是否已有 SSH 密钥,如果没有就生成一个新的,并告诉我怎么添加到 GitHub
3. 日常提交
场景 3.1:使用 /commit 斜杠命令(Claude Code 推荐)
这是最简单的提交方式。直接在 Claude Code 中输入:
/commit
Claude Code 会自动:
- 运行
git status和git diff查看所有变更 - 分析变更内容,生成描述性的提交信息
- 暂存相关文件并提交
场景 3.1B:在 Codex 中自然语言提交(推荐)
Codex 没有固定的 /commit 命令,推荐直接这样说:
提示词:
检查当前 Git 改动,确认没有误提交的数据文件或临时文件,然后帮我提交
先看一下 git status 和 diff,再把本次修改提交掉,commit message 用 conventional commit 风格
只提交和这次磁补偿算法修复相关的文件,提交信息写清楚修复内容
Codex 通常会先:
- 查看
git status、git diff --stat或git diff - 如有需要,提醒你未追踪的大文件、数据文件或敏感文件
- 在你明确要求后执行
git add和git commit
如果你还想继续推送,可以接着说:
提交完成后,把当前分支推送到 origin
场景 3.2:带说明的提交
提示词:
帮我提交当前修改,这次修改主要是修复了磁补偿算法中椭球拟合的数值溢出问题
帮我提交,说明是添加了新的实验数据预处理模块
场景 3.3:只提交部分文件
提示词:
只提交 src/compensation.py 和 src/utils.py 这两个文件的修改,其他改动先不提交
帮我把 models/ 目录下的修改单独提交,和 tests/ 的修改分开
场景 3.4:查看当前有哪些修改还没提交
提示词:
看看当前有什么改动还没提交
帮我看一下工作区的状态,哪些文件改了、哪些是新增的
场景 3.5:提交信息规范
提示词:
帮我提交,提交信息用 conventional commit 格式(如 feat:、fix:、docs: 前缀)
帮我提交,提交信息写成英文,符合开源项目规范
注意: Claude Code 和 Codex 默认都不会主动提交。只有你明确要求"提交"时才会执行
git commit;其中/commit是 Claude Code 专属快捷方式。
4. 分支管理
场景 4.1:创建新分支
提示词:
创建一个新分支叫 feature/ellipsoid-fitting,然后切换过去
基于 main 分支创建一个新分支 fix/numerical-overflow,然后切换过去
场景 4.2:查看所有分支
提示词:
列出所有本地和远程分支
看看当前在哪个分支上,还有哪些其他分支
场景 4.3:切换分支
提示词:
切换到 main 分支
切换到 develop 分支,如果有未提交的修改先提醒我
场景 4.4:删除分支
提示词:
删除本地的 feature/old-experiment 分支(已合并的)
帮我清理已经合并到 main 的本地分支
场景 4.5:重命名分支
提示词:
把当前分支从 dev 重命名为 develop
注意: 删除分支是危险操作,无论在 Claude Code 还是 Codex 中,都应先确认目标分支是否已合并,再执行删除。
5. 查看历史与变更
场景 5.1:查看提交历史
提示词:
看看最近 10 次提交记录
看看 compensation.py 这个文件的提交历史
看看最近一周的提交记录
场景 5.2:查看某次提交的具体内容
提示词:
看看最近一次提交具体改了什么
看看提交 abc1234 的详细改动
场景 5.3:查看文件的修改差异
提示词:
看看当前工作区和上次提交之间的差异
对比 main 分支和当前分支的差异
看看 src/model.py 这个文件相比上次提交改了哪些地方
场景 5.4:查看谁修改了某行代码(git blame)
提示词:
看看 src/compensation.py 第 45-60 行是谁在什么时候改的
场景 5.5:搜索提交历史
提示词:
搜索提交记录中包含"椭球拟合"或"ellipsoid"的提交
找到最近修改过 config.yaml 的提交
6. 远程仓库操作
场景 6.1:关联远程仓库
提示词:
把当前仓库关联到 GitHub 远程仓库 https://github.com/username/repo.git
查看当前关联的远程仓库地址
场景 6.2:推送到远程
提示词:
把当前分支推送到远程
推送当前分支到远程,如果远程还没有这个分支就创建
场景 6.3:从远程拉取更新
提示词:
从远程拉取最新代码
先 fetch 看看远程有什么更新,但先不合并
场景 6.4:同步 fork 仓库
提示词:
帮我把 fork 仓库和上游仓库同步,上游地址是 https://github.com/original/repo.git
注意: 推送操作会影响远程仓库。无论使用 Claude Code 还是 Codex,都建议先确认当前分支、远程名称和目标分支,再执行推送。
7. Pull Request 管理
场景 7.1:创建 PR
提示词:
帮我创建一个 PR,合并到 main 分支
Claude Code 会自动:
- 检查当前分支状态和与 main 的差异
- 分析所有提交内容
- 生成 PR 标题和详细描述
- 使用
gh pr create创建 PR
带详细说明的提示词:
帮我创建 PR 到 main 分支,标题简短说明是优化了补偿算法性能,描述里详细列出改动点
场景 7.2:查看 PR 状态
提示词:
看看当前仓库有哪些开着的 PR
看看 PR #42 的详情和评论
场景 7.3:查看 PR 的 review 评论
提示词:
看看 PR #42 的 review 评论,帮我整理需要修改的地方
场景 7.4:根据 review 意见修改代码并更新 PR
提示词:
根据 PR #42 的 review 意见修改代码,改完后提交并推送
场景 7.5:合并 PR
提示词:
合并 PR #42,使用 squash merge 方式
前提: 需要安装并登录 GitHub CLI(
gh auth login)。
补充(Codex): 这些 PR 场景同样适用于 Codex,本质上仍是调用gh和git命令;如果你的环境里没有gh,可以先让 Codex 检查并提示你安装。
8. 合并与冲突解决
场景 8.1:合并分支
提示词:
把 feature/new-model 分支合并到当前分支
把 main 分支的最新内容合并到当前开发分支
场景 8.2:处理合并冲突
提示词:
合并出现冲突了,帮我看看冲突在哪些文件,分析一下两边的改动
帮我解决当前的合并冲突,优先保留当前分支的逻辑,但合并 main 分支新增的功能
更精确的提示词:
帮我解决 src/model.py 的合并冲突:
- 保留当前分支的算法实现
- 采用 main 分支新增的参数配置
- 合并后确保代码能正常运行
场景 8.3:中止合并
提示词:
这次合并太复杂了,先取消这次合并操作
注意: 冲突解决涉及代码逻辑判断,建议详细描述保留策略,不要完全依赖自动处理。
9. 版本回退与撤销
场景 9.1:撤销工作区的修改(未暂存)
提示词:
我改坏了 src/utils.py,帮我恢复到上次提交的状态
帮我丢弃所有未暂存的修改,恢复到最后一次提交的状态
场景 9.2:撤销已暂存的文件(git reset)
提示词:
我误把 data/ 目录 add 进去了,帮我取消暂存,但不要删除文件
场景 9.3:撤销最近一次提交(保留修改)
提示词:
撤销最近一次提交,但是保留代码改动(只是取消提交,不丢失修改)
场景 9.4:回退到特定版本
提示词:
帮我看看最近 5 次提交的记录,我想回退到某个版本
回退到提交 abc1234 的状态,用 revert 方式(生成一个新的回退提交,不改历史)
场景 9.5:恢复被删除的文件
提示词:
我不小心删了 src/experiment.py,帮我从 Git 历史里恢复
安全提示:
git revert(推荐):生成新提交来撤销,不改变历史,安全git reset --hard(危险):直接回退并丢弃所有修改,不可逆- Claude Code 对危险操作会先确认
10. 标签管理
场景 10.1:创建标签
提示词:
给当前版本打一个标签 v1.0.0,备注"首个稳定版本"
给提交 abc1234 打标签 v0.2.0-beta
场景 10.2:查看标签
提示词:
列出所有标签
场景 10.3:推送标签到远程
提示词:
把标签 v1.0.0 推送到远程
把所有标签推送到远程
场景 10.4:删除标签
提示词:
删除本地标签 v0.1.0-test
删除远程的标签 v0.1.0-test
11. Stash 暂存
场景 11.1:暂存当前修改
提示词:
我需要临时切换分支,先把当前的修改暂存起来
帮我 stash 当前的改动,备注是"进行到一半的补偿算法优化"
场景 11.2:查看暂存列表
提示词:
看看 stash 里存了哪些内容
场景 11.3:恢复暂存的修改
提示词:
把最近一次 stash 的修改恢复回来
恢复 stash@{2} 的修改
场景 11.4:删除暂存记录
提示词:
删除最近一次 stash 记录
清空所有 stash
12. Worktree 隔离开发
Git Worktree 允许在同一个仓库中创建多个工作目录,适合同时进行多个任务。
场景 12.1:在 Claude Code 中使用 Worktree
在 Claude Code 对话中直接说:
提示词:
帮我创建一个 worktree 来做实验性修改
Claude Code 会使用内置的 Worktree 功能,在 .claude/worktrees/ 目录下创建隔离的工作环境。
场景 12.1B:在 Codex 中使用原生 Git Worktree
Codex 更适合直接使用 Git 原生命令管理 worktree。
提示词:
在 ../project-hotfix 路径创建一个基于 main 分支的 git worktree,用于紧急修复
列出当前仓库所有 worktree,并帮我删除已经不用的那个
在新的 worktree 里创建分支 feature/experiment-2,然后切换过去
Codex 通常会直接调用 git worktree add、git worktree list、git worktree remove,而不是依赖 .claude/worktrees/ 目录约定。
场景 12.2:退出 Worktree
提示词:
退出当前 worktree,保留修改
退出当前 worktree,不需要了直接删除
场景 12.3:手动管理 Worktree
提示词:
列出当前仓库的所有 worktree
在 ../project-hotfix 路径创建一个 worktree,基于 main 分支
13. .gitignore 管理
场景 13.1:创建/更新 .gitignore
提示词:
帮我创建一个 .gitignore,这是 Python 科研项目,要排除数据文件、模型权重、日志和临时文件
帮我在 .gitignore 里加上 *.mat 和 results/ 目录
场景 13.2:检查哪些文件被忽略
提示词:
看看哪些文件被 .gitignore 忽略了
检查 data/raw.csv 有没有被 .gitignore 排除
场景 13.3:停止追踪已提交的文件
提示词:
data/cache.pkl 之前已经提交过了,现在想把它从 Git 追踪中移除但保留本地文件
14. 高级操作
场景 14.1:Cherry-pick(拣选提交)
提示词:
把 develop 分支上的提交 abc1234 拣选到当前分支
看看 feature 分支最近 5 次提交,帮我把第 2 个和第 4 个 cherry-pick 到 main
场景 14.2:Rebase(变基)
提示词:
把当前分支 rebase 到 main 分支上,让提交历史更干净
注意: Claude Code 和 Codex 都不适合交互式 rebase(
git rebase -i)这类强依赖编辑器交互的流程。如需压缩提交,可以直接这样说:
帮我把当前分支最近 3 次提交压缩成一个提交
场景 14.3:子模块管理
提示词:
添加 https://github.com/xxx/lib.git 作为子模块,放在 third_party/lib 目录
更新所有子模块到最新版本
场景 14.4:查找引入 bug 的提交(git bisect)
提示词:
帮我用 git bisect 找出哪个提交引入了 bug。
已知 v1.0.0 标签时是好的,当前版本有问题。
判断标准是运行 python test_compensation.py 如果返回非零就是有 bug
场景 14.5:导出/打包
提示词:
把当前版本打包成一个 zip/tar.gz 文件,排除 .git 目录
15. 安全注意事项
Claude Code 的内置安全机制
| 操作 | 安全级别 | 说明 |
|---|---|---|
git status/log/diff |
安全 | 只读操作,自动执行 |
git add/commit |
一般 | 根据权限设置可能需确认 |
git push |
需确认 | 影响远程仓库,每次确认 |
git push --force |
高危 | 始终需要确认,禁止对 main/master |
git reset --hard |
高危 | 始终需要确认,会丢失修改 |
git branch -D |
需确认 | 强制删除分支 |
git clean -f |
高危 | 删除未追踪文件 |
Codex 的安全边界
- Codex 默认优先使用非交互式 Git 命令,不依赖需要人工在编辑器中逐步操作的流程
- 对
git reset --hard、git checkout --、git push --force、git branch -D等命令会非常谨慎 - 如果当前工作区本来就很脏,Codex 通常会先汇报现状,而不是擅自覆盖、回滚或清空已有修改
- 如果目标路径超出当前工作区的可写范围,Codex 可能会先请求你授权后再执行写操作
你应该知道的规则
- 永远不要让 Claude Code force push 到 main/master --- 这是硬性保护
- Claude Code 默认创建新提交而非 amend --- 避免修改已有历史
- 提交时不会自动
git add .--- 会选择性地添加相关文件,避免误提交敏感文件 - 遇到
.env、密钥文件等会主动警告 --- 不会将含密钥的文件提交 - pre-commit hook 失败后会修复问题并重新提交 --- 而非跳过 hook
16. 常见问题与最佳实践
Q1:Claude Code 或 Codex 会自动提交吗?
都不会。 除非你明确要求"帮我提交",否则它们都只会查看状态、分析变更或修改文件,不会自动执行 git commit。另外,/commit 是 Claude Code 的快捷命令,不是 Codex 的固定命令。
Q2:提交信息风格怎么控制?
Claude Code 会自动查看你仓库最近的提交历史来匹配风格。你也可以明确指定:
以后提交信息都用 conventional commit 格式,英文撰写
Q3:怎么避免误提交大文件或敏感文件?
帮我检查当前仓库有没有大文件(>10MB)或敏感文件(.env、密钥、token)被追踪
Q4:多人协作时的推荐流程
帮我按以下流程操作:
1. 先从 main 拉取最新代码
2. 创建新分支 feature/xxx
3. (你写代码的过程)
4. 提交并推送
5. 创建 PR
Q5:怎么设置 Git Hooks?
帮我配置一个 pre-commit hook,在提交前自动运行 python -m pytest tests/
Q6:Codex 里没有 /commit 怎么办?
直接用自然语言告诉 Codex 你想要的提交流程即可,例如:
检查当前改动并提交,commit message 用 conventional commit 风格
先确认哪些文件会被提交,再只提交和本次 bugfix 相关的修改
先看一下当前分支相对 main 的差异,确认无误后再提交并推送
最佳实践清单
- 频繁小提交 > 大量堆积后一次提交
- 分支开发 > 直接在 main 上改
- 先 pull 再 push > 避免冲突
- 写清提交信息 > "fix bug" 这类无意义描述
- 用 .gitignore > 手动排除
- 用 revert 回退 > 用 reset --hard
- PR + review > 直接 push 到 main
17. 提示词速查表
按使用频率排列,可直接复制到 Claude Code 或 Codex 中使用;其中 /commit 为 Claude Code 专属:
日常高频
| 场景 | 提示词 |
|---|---|
| 快速提交 | /commit |
| 带说明提交 | 帮我提交当前修改,说明是 xxx |
| 查看状态 | 看看当前有什么改动没提交 |
| 查看差异 | 看看当前改了什么 |
| 查看历史 | 看看最近 10 次提交 |
| 创建分支 | 创建分支 feature/xxx 并切换过去 |
| 切换分支 | 切换到 main 分支 |
| 推送 | 推送当前分支到远程 |
| 拉取 | 从远程拉取最新代码 |
PR 相关
| 场景 | 提示词 |
|---|---|
| 创建 PR | 帮我创建 PR 到 main 分支 |
| 查看 PR | 看看 PR #42 的详情和评论 |
| 按 review 修改 | 按 PR #42 的 review 意见修改代码,改完提交推送 |
分支与合并
| 场景 | 提示词 |
|---|---|
| 合并分支 | 把 feature/xxx 合并到当前分支 |
| 解决冲突 | 帮我分析并解决当前的合并冲突 |
| 同步 main | 把 main 的最新内容合并到当前分支 |
回退与修复
| 场景 | 提示词 |
|---|---|
| 撤销文件改动 | 恢复 xxx.py 到上次提交的状态 |
| 撤销最近提交 | 撤销最近一次提交,保留修改 |
| 安全回退 | 用 revert 方式撤销提交 abc1234 |
| 恢复删除文件 | 从 Git 历史恢复被删除的 xxx.py |
其他操作
| 场景 | 提示词 |
|---|---|
| 暂存修改 | 帮我 stash 当前改动,备注 xxx |
| 恢复暂存 | 恢复最近的 stash |
| 打标签 | 给当前版本打标签 v1.0.0 |
| 创建 gitignore | 创建 .gitignore,Python 科研项目 |
| Cherry-pick | 把提交 abc1234 拣选到当前分支 |
| 检查大文件 | 检查有没有大文件或敏感文件被追踪 |
Codex 高频提示词
| 场景 | 提示词 |
|---|---|
| 检查并提交 | 检查当前 Git 改动,确认没有误提交的数据文件或临时文件,然后帮我提交 |
| 指定格式提交 | 把当前修改提交掉,commit message 用 conventional commit,英文 |
| 只提交部分文件 | 只提交 src/ 和 tests/ 下与本次修复相关的文件 |
| 安全推送 | 先检查当前分支是否落后远端,再把当前分支推送到 origin |
| 查看相对差异 | 先看一下当前分支相对 main 改了什么 |
| 安全回退 | 不要改历史,用 revert 撤销最近一次提交 |
| Worktree | 在 ../repo-hotfix 创建一个基于 main 的 git worktree |
| 生成 PR 描述 | 根据当前分支相对 main 的改动,帮我生成 PR 标题和描述 |
组合工作流
完整功能开发流程:
帮我按以下流程操作:
1. 从 main 拉取最新代码
2. 创建分支 feature/改进椭球拟合算法
3. 等我写完代码后告诉你
---
(写完代码后)
帮我提交所有改动,然后推送并创建 PR 到 main
紧急修复流程:
帮我从 main 创建 hotfix/修复数值溢出 分支,切换过去
---
(修复完成后)
帮我提交修复,推送并创建 PR,标记为紧急
版本发布流程:
帮我准备 v1.2.0 版本发布:
1. 确保 main 分支是最新的
2. 打标签 v1.2.0,备注"新增自适应补偿功能"
3. 推送标签到远程
文档版本: v1.1 | 最后更新: 2026-04-12 | 适用于: Claude Code / Codex