Free Preview

先试读:Claude Code和Git怎么配合:分支、提交、回滚、不要误提交

Claude Code 可以快速读文件、改文件、跑测试、整理提交说明。速度是优点,但也带来一个现实问题:如果你不管理改动范围,很容易不知道它到底改了什么。

Git 的价值不是“写给程序员看的历史记录”,而是给你三种能力:第一,知道哪些文件变了;第二,知道每次变更的目的;第三,出现问题时能回到上一版。

这篇能解决什么问题

  • 把一句模糊需求改成 AI 能执行、你能验收的任务卡。
  • 知道执行前要先检查哪些文件、风险点和验证命令。
  • 避免 AI 顺手改无关内容,最后只交付可审、可回退的改动。

付费后能看到哪些内容

  • AI 改代码越快,越需要 Git 把每一步留痕
  • 每次开工前,都先问:当前工作区干不干净
  • 分支解决“在哪里改”,提交解决“这次改了什么”
  • 有其他改动时,不要让 AI 直接 git add .

可以先照着试的一句话

这是我要改的功能:___。请先阅读项目结构,列出会动哪些文件、风险点和验证命令;等我确认范围后,再开始做最小改动。

试读到这里先判断是否对你的任务有用;完整文章会继续展开步骤、案例、模板和避坑细节。

01 · 安全绳

AI 改代码越快,越需要 Git 把每一步留痕

没有 Git,AI 的改动就是一团看不清边界的文件变化。

Claude Code 可以快速读文件、改文件、跑测试、整理提交说明。速度是优点,但也带来一个现实问题:如果你不管理改动范围,很容易不知道它到底改了什么。

Git 的价值不是“写给程序员看的历史记录”,而是给你三种能力:第一,知道哪些文件变了;第二,知道每次变更的目的;第三,出现问题时能回到上一版。

没有 Git

改完之后只能靠肉眼找变化,线上出问题很难快速定位。

有 Git

每次改动都能被审查、提交、回滚,也能排除无关变化。

AI 负责执行

读 diff、解释改动、生成提交说明、提醒风险。

人负责确认

决定是否提交、是否部署、是否回滚、是否影响线上用户。

02 · 工作区状态

每次开工前,都先问:当前工作区干不干净

如果工作区里已经有别人或你自己留下的改动,AI 不能假装看不见。

真实项目里,工作区经常不是干净的。可能你昨天改了一半,可能另一个人刚生成了文件,可能某个脚本自动更新了索引。如果 Claude Code 没有先看 git status,它可能会把这些改动误以为是自己刚做的,最后一起提交。

最容易发生的误提交

你只想提交一篇模拟文章,但工作区里还混着未完成的支付配置、临时日志、测试截图。AI 如果直接 git add .,就可能把不该提交的东西全部带进去。

开工前提示词
请先检查当前 Git 工作区状态,不要修改文件。
请告诉我:
1. 当前分支是什么
2. 有哪些已修改、新增、删除、暂存文件
3. 哪些文件看起来和本次任务相关
4. 哪些文件可能是别的任务留下的,不应该碰
5. 如果后续提交,应该如何只提交本次目标文件
03 · 分支与提交

分支解决“在哪里改”,提交解决“这次改了什么”

不要把多个目标塞进一个提交,也不要在不清楚分支用途时直接改主分支。

场景建议做法原因
新增一篇文章一个提交只包含文章、入口页、搜索索引方便审查内容是否完整同步。
修一个 bug提交里只包含 bug 修复和必要验证相关文件避免把无关优化混进修复里。
大功能开发单独分支,多次小提交每一步都可审查,失败时容易回退。
临时试验单独试验分支或不提交避免污染稳定分支。

让 Claude Code 写 commit message 时,也不要只写“update files”。好的提交说明应该能回答:改了什么、为什么改、是否包含验证。比如 Add Claude Code Git workflow article 就比 update tools 清楚得多。

04 · 只提交目标文件

有其他改动时,不要让 AI 直接 git add .

只提交目标文件,是避免事故的核心动作。

如果工作区很干净,git add 目标文件和 git add . 的结果可能一样。但只要工作区有无关改动,git add . 就会变成高风险操作。更稳的方式是明确列出文件。

1
先列目标文件
让 Claude Code 说明本次任务应该提交哪些文件。
2
检查 diff
逐个文件看改动是否符合任务范围。
3
只暂存目标
使用明确文件路径,而不是把所有改动一口气加入。
4
提交前再看状态
确认暂存区只有本次目标文件,未暂存改动被保留。

有时你还可以使用 git commit --only file1 file2 这类方式,确保只提交指定文件。重点不是记住某个命令,而是形成意识:提交范围必须可解释。

05 · 回滚边界

回滚不是“撤销一切”,而是知道要撤哪一层

越早想清楚回滚,越不怕上线后发现问题。

很多人听到回滚,会想到危险命令。其实日常项目里,更重要的是让 Claude Code 先说明回滚边界:本次提交包含哪些文件;如果线上出问题,是撤提交、恢复某个文件,还是临时切回旧链接;哪些改动不能直接撤,因为会影响数据或权限。

普通内容改动

通常可以通过撤回提交或恢复文件解决。

配置改动

需要确认环境变量、服务器配置、缓存是否也变了。

数据库改动

不能随便回滚文件,必须考虑已写入数据。

外部发送

邮件、消息、Webhook 一旦发送,文件回滚也无法撤回外部影响。

06 · 可复制模板

一套 Claude Code + Git 的安全协作提示词

把 Git 流程交给 AI 执行时,确认权仍然要握在人手里。

Git 协作模板
请协助处理当前模拟项目的 Git 流程。

第一步:只读检查
- 输出当前分支
- 输出工作区状态
- 区分本次任务相关改动和无关改动

第二步:提交前审查
- 列出本次建议提交的文件
- 总结每个文件改了什么
- 确认是否触碰登录、权限、支付、数据、部署等高风险区域
- 给出建议 commit message

第三步:提交限制
- 不要使用 git add .
- 只暂存我确认的目标文件
- 提交前再次输出暂存区内容

第四步:回滚说明
- 说明如果线上有问题,应该回滚哪一层
- 不要执行 destructive 命令,除非我明确确认
Git 协作要点
  • 开工前先看当前分支和工作区状态。
  • 不要把用户或其他任务留下的改动当成自己的改动。
  • 提交前先解释 diff,再提交。
  • 有无关改动时只提交目标文件。
  • 部署前必须知道本次改动如何回滚。

Next Step

学完这篇,下一步这样走

先把刚学的内容用起来,再继续读两篇相关内容;如果想换主题,可以回到本系列目录重新选择。

现在就练一下

练一次只暂存目标文件:先看 dirty worktree,再列出本次应该提交和不应该提交的文件,最后写一条提交说明。