自学教程

Claude Code Git 工作流

简介

Claude Code Git 工作流,是将 Claude Code 与 Git 版本控制结合的标准化开发流程。利用 Claude 读取仓库分支、diff、提交记录,自动生成commit信息、代码合并检查、冲突解决,配合前面学到的检查点(Checkpoint),形成「AI开发 + Git版本管理」闭环。

区分:

  • Checkpoint:Claude 会话内临时快照,轻量,会话销毁丢失,不能替代Git
  • Git:正式持久化版本仓库,用于多人协作、历史版本回溯

前置条件

  1. 项目已初始化为 Git 仓库
  2. 已安装 Claude Code CLI
  3. 推荐开启 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 + 检查点配合策略

  1. 小改动:直接Git提交,可不创建检查点
  2. 大规模重构:先创建检查点,再开发;开发完成确认无误后Git提交
  3. 如果改动效果不理想:/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

最佳实践

  1. 永远不要直接在main主干使用Claude做大量修改,新建feature分支。
  2. 每次提交前,让Claude查看diff并做代码评审,检查变更风险。
  3. 检查点只是临时快照,所有正式版本变更必须Git提交。
  4. 自动提交脚本慎用:不配置钩子自动执行git commit,人工确认后再提交。
  5. PR描述交由Claude生成,但人工复核,核对变更范围。

常见问题

  1. Claude无法读取git信息
    确认git MCP服务正常:/mcp list;项目根目录存在.git文件夹。
  2. Git冲突,Claude自动合并出错
    复杂冲突优先人工介入;Claude给出方案后逐行审阅。
  3. Claude执行git命令被拦截
    Manual模式下,shell类git命令会请求审批;Plan模式不允许执行写操作命令。

安全提示

  1. Git仓库内不要提交密钥、.env文件,配置.gitignore。
  2. 自动模式下禁止执行git push、强制推送等高危操作。
  3. 即使Claude生成commit信息和PR文档,代码变更仍需人工审核。

0 条笔记