简介
Claude Code Git 工作流,是将 Claude Code 与 Git 版本控制结合的标准化开发流程。利用 Claude 读取仓库分支、diff、提交记录,自动生成commit信息、代码合并检查、冲突解决,配合前面学到的检查点(Checkpoint),形成「AI开发 + Git版本管理」闭环。
区分:
- Checkpoint:Claude 会话内临时快照,轻量,会话销毁丢失,不能替代Git
- Git:正式持久化版本仓库,用于多人协作、历史版本回溯
前置条件
- 项目已初始化为 Git 仓库
- 已安装 Claude Code CLI
- 推荐开启 Git MCP 服务(
server-git),让 Claude 直接读取Git仓库信息
Git MCP 配置(.claude/settings.json)
{
"mcpServers": {
"git": {
"command": "npx",
"args": ["@modelcontextprotocol/server-git"]
}
}
}
修改配置后重载:
/mcp restart
标准 Claude + Git 工作流(推荐)
1. 新建分支(功能开发前)
/mode plan
基于main分支新建feature/user-list分支,列出操作步骤
审核方案后切换 manual 执行:
/mode manual
按方案创建并切换到 feature/user-list 分支
2. 开发前:查看当前变更,创建检查点
# 查看git状态 @git status创建检查点,用于开发失败回滚/checkpoint create before-feature-dev
3. AI编码开发
下发需求,遵循Plan先行:
/mode plan
实现用户列表接口,修改src/service/user.ts,输出完整方案
审核方案,确认后执行代码编写。
4. 开发完成:查看diff、代码评审
# 查看本次全部修改 @git diff调用代码评审技能调用技能 code-review,评审本次变更文件
5. 暂存变更,生成提交信息并提交
@git add 所有修改文件
生成符合约定式提交规范(Conventional Commits)的commit message,执行git commit
示例commit:
feat: add user list api and types
6. 拉取主干分支,解决冲突
@git pull origin main
当出现代码冲突,让Claude辅助解决:
查看git冲突文件,分析两边变更,给出冲突解决方案,输出修改后的代码
冲突文件修改操作依旧受当前会话模式管控。
7. 推送分支,生成PR/MR描述
@git push origin feature/user-list
根据本次commit和diff,生成Pull Request描述,包含:功能说明、变更清单、自测要点、风险提示
斜杠命令与Git MCP调用示例
# 查看git状态 @git status查看最近3条提交记录 @git log --oneline -n 3 对比当前分支与main分支差异 @git diff main 查看指定文件历史@git log src/service/user.ts
钩子自动集成(可选)
可以配置 afterFileWrite 钩子,文件修改后自动检查git变更。.claude/hooks/git-hook.md
# Hook git-change-check
触发事件:afterFileWrite
触发条件:src/**/*
执行逻辑:调用git status,输出新增/修改文件清单,提醒开发者确认变更
约束:仅信息输出,不自动执行git commit
重载钩子:
/hook reload
Git + 检查点配合策略
- 小改动:直接Git提交,可不创建检查点
- 大规模重构:先创建检查点,再开发;开发完成确认无误后Git提交
- 如果改动效果不理想:
/checkpoint restore xxx回滚文件,仓库保持不变
分支管理规范
main:稳定主干,禁止Claude直接在main分支做大量修改feature/*:功能开发分支fix/*:bug修复分支
所有AI代码修改,统一在特性分支完成,评审后合并进main。
常见场景
场景1:AI写代码后,不想提交全部文件
@git status
只把src/service/user.ts加入暂存,其他文件保留未暂存
场景2:需要撤销最近一次commit(保留文件改动)
@git reset --soft HEAD~1
最佳实践
- 永远不要直接在main主干使用Claude做大量修改,新建feature分支。
- 每次提交前,让Claude查看diff并做代码评审,检查变更风险。
- 检查点只是临时快照,所有正式版本变更必须Git提交。
- 自动提交脚本慎用:不配置钩子自动执行
git commit,人工确认后再提交。 - PR描述交由Claude生成,但人工复核,核对变更范围。
常见问题
- Claude无法读取git信息
确认git MCP服务正常:/mcp list;项目根目录存在.git文件夹。 - Git冲突,Claude自动合并出错
复杂冲突优先人工介入;Claude给出方案后逐行审阅。 - Claude执行git命令被拦截
Manual模式下,shell类git命令会请求审批;Plan模式不允许执行写操作命令。
安全提示
- Git仓库内不要提交密钥、
.env文件,配置.gitignore。 - 自动模式下禁止执行git push、强制推送等高危操作。
- 即使Claude生成commit信息和PR文档,代码变更仍需人工审核。
0 条笔记