Claude Code: Git 工作流与 GitHub Actions
最后更新:2026-08-31
Claude Code 不只是写代码——它还能融入你的 Git 工作流,从提交规范到 PR 审查,从 CI 集成到自动化修复。
💡 提示:Git 工作流集成的核心是"人在回路"——Claude Code 辅助,人工决策。自动化操作(CI/CD)用头部模式,日常开发用交互模式。
📋 前置知识:第二十二章 环境变量与开发配置
1. 你将学到
- Claude Code 与 Git 的协作方式
- Commit 规范与自动化
- GitHub Actions 集成
- PR 自动审查
- CI/CD 流水线中的 Claude Code
2. Git 工作流集成
(1) 工作流概览
graph LR
A[编写代码] --> B[Claude Code 辅助]
B --> C[自动测试]
C --> D[Commit]
D --> E[Push]
E --> F[PR]
F --> G[Claude Code 审查]
G --> H[合并]
(2) 常用 Git 集成命令
| 操作 | 命令 | 说明 |
|---|---|---|
| 提交变更 | /commit |
自动生成 commit message |
| 查看变更 | /diff |
查看当前会话修改 |
| 撤销操作 | /undo |
撤销最近操作 |
| 检查状态 | git status |
查看工作区状态 |
▶ 示例 1: Claude Code 辅助 Git 流程
TEXT
📖 仅展示
> 完成用户注册功能的开发
Claude Code:
→ Creating src/services/registration.service.ts
→ Creating src/routes/registration.ts
→ Creating tests/registration.test.ts
→ Running: npm test
✅ All tests passed
> /commit
Claude Code 自动生成 commit message:
feat: add user registration service
- Create registration.service.ts with email/password signup
- Add POST /api/register endpoint
- Add input validation (email format, password strength)
- Write 6 unit tests (all passing)
Allow commit? [y/n] y
✅ Committed: feat: add user registration service
3. Commit 规范自动化
(1) Conventional Commits 集成
TEXT
📖 仅展示
# Claude Code 自动识别变更类型并生成规范 commit
| 变更类型 | Commit 前缀 | 示例 |
|:---------|:-----------|:-----|
| 新功能 | feat: | feat: add user registration |
| 修复 | fix: | fix: token refresh on expiry |
| 重构 | refactor: | refactor: extract validation logic |
| 测试 | test: | test: add registration tests |
| 文档 | docs: | docs: update API documentation |
| 样式 | style: | style: fix indentation |
| 配置 | chore: | chore: update dependencies |
(2) CLAUDE.md 中配置 Commit 规范
MARKDOWN
## Git 规范
- 使用 Conventional Commits 格式
- 中文 commit message
- 每个功能点单独 commit
- Commit message 包含:做了什么 + 为什么 + 影响范围
- 不要 commit .env 文件
▶ 示例 2: 自动生成高质量 Commit
TEXT
📖 仅展示
> /commit
Claude Code 分析变更:
Modified: src/auth/jwt.ts (+15 -3)
Modified: src/middleware/auth.ts (+8 -2)
Created: tests/jwt-refresh.test.ts (+42)
Generated commit:
fix: 修复 JWT token 刷新逻辑
- jwt.ts: 添加 refresh token 轮换机制,防止 token 重放攻击
- auth.ts: 修复中间件未检查 token 过期的 bug
- 新增 6 个测试覆盖刷新场景
Refs: #342
4. GitHub Actions 集成
(1) PR 自动审查
YAML
# .github/workflows/ai-review.yml
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
ai-review:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: AI Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude --headless --output json \
"审查这个 PR 的变更:
1. 安全漏洞(SQL注入、XSS、敏感数据泄露)
2. 性能问题(N+1查询、内存泄漏)
3. 代码风格(是否符合项目规范)
4. 测试覆盖(是否需要补充测试)
输出 JSON 格式报告" > review.json
- name: Post Review
run: |
COMMENT=$(jq -r '.result.summary' review.json)
gh pr comment ${{ github.event.pull_request.number }} \
--body "$COMMENT"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
(2) 自动修复 Lint 问题
YAML
# .github/workflows/auto-fix.yml
name: Auto Fix Lint Issues
on:
push:
branches: [main]
jobs:
auto-fix:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Fix Lint Issues
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude --headless --allowed-tools Read,Write \
"运行 npm run lint,修复所有自动可修复的问题,
不要修改测试文件"
- name: Commit Fixes
run: |
git config user.name "Claude Code Bot"
git config user.email "bot@example.com"
git add -A
git diff --staged --quiet || git commit -m "style: auto-fix lint issues"
git push
▶ 示例 3: 完整 CI 审查流水线
YAML
name: AI Review Pipeline
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup
run: npm install -g @anthropic-ai/claude-code
- name: Security Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p "安全审查变更,检查注入、XSS、敏感数据" \
--output json > security.json
- name: Code Quality Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p "代码质量审查,检查可读性、复杂度、命名" \
--output json > quality.json
- name: Test Coverage Check
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p "检查变更是否有对应的测试覆盖" \
--output json > coverage.json
- name: Post Combined Review
run: |
# 合并三个报告并发布 PR 评论
node scripts/merge-reviews.js security.json quality.json coverage.json
5. PR 审查实践
(1) 人工 + AI 双重审查
TEXT
📖 仅展示
审查流程:
1. Claude Code 自动审查(安全、性能、风格)
2. 人工审查(业务逻辑、架构决策)
3. AI 不批准/拒绝 PR,只提建议
4. 人类做最终决策
(2) 审查维度
| 维度 | AI 审查 | 人工审查 |
|---|---|---|
| 安全漏洞 | ✅ 擅长 | 辅助 |
| 代码风格 | ✅ 擅长 | 不需要 |
| 性能问题 | ✅ 一般 | 关键场景 |
| 业务逻辑 | ❌ 不擅长 | ✅ 核心 |
| 架构设计 | ❌ 不擅长 | ✅ 核心 |
❓ 常见问题
Q Claude Code 能自动合并 PR 吗?
A 技术上可以但不建议。CI 中 Claude Code 只做审查和建议,合并决策由人工做出。
Q GitHub Actions 中的 API 费用谁承担?
A 使用仓库 Secrets 中的 API Key,费用由 Key 所有者承担。建议用独立的 CI Key,设置额度限制。
Q CI 中 Claude Code 审查可靠吗?
A 安全问题和代码风格审查较可靠(80%+)。业务逻辑审查不可靠,需要人工补充。
Q 如何避免 CI 中的无限循环?
A 自动修复的 commit 不触发新的 workflow。在 YAML 中添加
if: github.actor != 'claude-code-bot'。Q 能用在 GitLab CI 吗?
A 可以。Claude Code 是 CLI 工具,任何能运行 npm 命令的 CI 环境都能用。
Q
/commit 生成的 message 准确吗?A 大部分准确。建议审查后确认,不要无脑接受。CLAUDE.md 中写明规范能提高准确性。
📖 小节
/commit自动生成 Conventional Commits 格式的 message- GitHub Actions 用头部模式集成 Claude Code
- PR 自动审查:安全、性能、风格;人工审查:业务、架构
- CI 中的 Claude Code 只建议不决策,人在回路
- 自动修复 lint 时注意避免 CI 无限循环
📝 作业
- 基础题(难度⭐):使用
/commit提交代码变更,检查自动生成的 commit message 质量。 - 进阶题(难度⭐⭐):配置 GitHub Actions,在 PR 时自动运行 Claude Code 安全审查。
- 挑战题(难度⭐⭐⭐):搭建完整的 AI 审查流水线(安全+质量+覆盖率),结果自动发布为 PR 评论。