Claude Code: Git 工作流与 GitHub Actions

最后更新:2026-08-31

Claude Code 不只是写代码——它还能融入你的 Git 工作流,从提交规范到 PR 审查,从 CI 集成到自动化修复。

💡 提示:Git 工作流集成的核心是"人在回路"——Claude Code 辅助,人工决策。自动化操作(CI/CD)用头部模式,日常开发用交互模式。

📋 前置知识:第二十二章 环境变量与开发配置

1. 你将学到


2. Git 工作流集成

(1) 工作流概览

100%
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 中写明规范能提高准确性。

📖 小节


📝 作业

  1. 基础题(难度⭐):使用 /commit 提交代码变更,检查自动生成的 commit message 质量。
  2. 进阶题(难度⭐⭐):配置 GitHub Actions,在 PR 时自动运行 Claude Code 安全审查。
  3. 挑战题(难度⭐⭐⭐):搭建完整的 AI 审查流水线(安全+质量+覆盖率),结果自动发布为 PR 评论。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏