Git 集成实战完全指南(三):自动化 Commit 与 PR


title: Git 集成实战完全指南(三)自动化 Commit 与 PR------生成提交信息与创建 Pull Request

date: 2026-07-10
category: AI 开发工具
tags: Claude Code, Git, Commit, Pull Request, 自动化

Git 集成实战完全指南(三):自动化 Commit 与 PR

提交信息怎么写?PR 描述怎么填?这些看似小事,实则最耗时间。本篇教你让 Claude Code 自动生成高质量的 Commit Message 和 Pull Request。

前言

每个开发者都有过这样的经历:

bash 复制代码
# 随手一写
git commit -m "fix"
git commit -m "update"
git commit -m "改了点东西"

提交信息敷衍了事,后来回头看日志完全不知道改了什么。PR 描述也是一片空白,Review 的人一头雾水。

用 Claude Code,这些都可以自动化------分析你的代码改动,生成清晰的提交信息和 PR 描述。

一、智能 Commit Message 生成

1.1 约定式提交(Conventional Commits)

复制代码
commit_message_format = <type>(<scope>): <subject>

type:
  feat     - 新功能
  fix      - Bug 修复
  docs     - 文档
  style    - 代码格式
  refactor - 重构
  test     - 测试
  chore    - 构建/工具

1.2 让 Claude 自动生成

复制代码
帮我生成提交信息

Claude 分析 git diff 后输出:

复制代码
检测到以下改动:
  - UserList.vue: 新增搜索功能 (+45行)
  - user.ts: 新增搜索 API (+12行)
  - user.ts: 修复分页 bug (-3行)

建议提交信息:
  feat(user): 用户列表页新增搜索功能并修复分页问题

如果需要拆分提交:
  提交 1: feat(user): 用户列表页新增搜索功能
  提交 2: fix(user): 修复分页组件 pageSize 绑定错误

1.3 多语言提交信息

复制代码
用中文写提交信息

Claude 输出:

复制代码
feat(用户管理): 用户列表页新增搜索功能和状态列

或者英文:

复制代码
write commit message in English

Claude 输出:

复制代码
feat(user): add search functionality and status column to user list

1.4 批量提交

当一次改动涉及多个模块时,Claude 会建议拆分提交:

复制代码
我有 5 个文件的改动,怎么组织提交?

Claude 分析后:

复制代码
建议拆分为 3 次提交:

提交 1: feat(report): 新增日报统计页面
  - src/views/Reports/Daily.vue
  - src/api/report.ts

提交 2: feat(report): 新增周报和月报页面
  - src/views/Reports/Weekly.vue
  - src/views/Reports/Monthly.vue

提交 3: chore(deps): 升级 ECharts 到 v5
  - package.json

二、自动化 Commit

2.1 一键提交

复制代码
提交所有改动

Claude 自动执行:

bash 复制代码
# 1. 分析改动
git diff --stat

# 2. 生成提交信息
#    feat(user): 用户列表页新增搜索功能并修复分页问题

# 3. 确认
#    提交信息:feat(user): 用户列表页新增搜索功能并修复分页问题
#    确认提交?(y/N)

# 4. 执行
git add -A
git commit -m "feat(user): 用户列表页新增搜索功能并修复分页问题"

2.2 选择性提交

复制代码
只提交 UserList.vue 和 user.ts 的改动,node_modules 除外

Claude 执行:

bash 复制代码
git add src/views/UserList.vue src/api/user.ts
git commit -m "feat(user): 用户列表页新增搜索功能"

2.3 amend 提交

复制代码
把刚才的提交信息改一下,加上 Jira 工单号

Claude 执行:

bash 复制代码
git commit --amend -m "feat(JTCQK1-123): 用户列表页新增搜索功能"

2.4 撤销提交

复制代码
撤销最后一次提交,但保留代码改动

Claude 执行:

bash 复制代码
git reset --soft HEAD~1
复制代码
撤销最后一次提交,并且丢弃代码改动

Claude 执行:

bash 复制代码
git reset --hard HEAD~1

三、Pull Request 自动化

3.1 创建 PR

复制代码
创建一个 PR 合并到 develop

Claude 自动执行:

bash 复制代码
# 1. 确保分支已推送
git push -u origin feature/user-search

# 2. 使用 gh CLI 创建 PR
gh pr create \
  --base develop \
  --head feature/user-search \
  --title "feat(user): 用户列表页新增搜索功能" \
  --body "PR 描述自动生成..."

3.2 自动生成 PR 描述

Claude 会根据改动内容自动生成 PR 描述:

markdown 复制代码
## 变更概述

本次变更在用户列表页新增了搜索功能和状态列展示。

## 主要改动

### 新增功能
- 用户列表页顶部新增搜索框,支持按用户名模糊搜索
- 表格新增"状态"列,展示用户活跃状态
- 新增搜索 API:`GET /api/users?username=xxx`

### Bug 修复
- 修复分页组件 pageSize 绑定错误(原值为字符串而非数字)

## 文件变更

| 文件 | 变更类型 | 说明 |
|------|---------|------|
| UserList.vue | 修改 | 新增搜索框、状态列 |
| user.ts | 修改 | 新增搜索 API、修复分页 |
| user.ts | 新增 | 新增 UserQuery 类型定义 |

## 自测清单

- [x] 搜索功能正常工作
- [x] 分页功能正常
- [x] TypeScript 编译通过
- [x] 无 ESLint 错误

## 截图(如有 UI 变更)

(暂无)

## 关联工单

- JTCQK1-123: 用户列表搜索功能

3.3 PR 模板

你可以在 .github/PULL_REQUEST_TEMPLATE.md 中定义模板,Claude 会填充:

markdown 复制代码
## 变更类型

- [ ] 新功能(feat)
- [ ] Bug 修复(fix)
- [ ] 重构(refactor)
- [ ] 文档(docs)
- [ ] 测试(test)
- [ ] 构建/工具(chore)

## 影响范围

- [ ] 前端
- [ ] 后端
- [ ] 数据库
- [ ] 配置文件

## 测试情况

- [ ] 单元测试已通过
- [ ] 手动测试已通过
- [ ] 需要额外测试

## 备注

(其他需要说明的信息)

3.4 审查请求

复制代码
创建 PR 并邀请张三和李四 Review

Claude 执行:

bash 复制代码
gh pr create \
  --base develop \
  --head feature/user-search \
  --reviewer zhangsan \
  --reviewer lisi \
  --title "feat(user): 用户列表页新增搜索功能"

四、PR 状态跟踪

4.1 查看 PR 状态

复制代码
我的 PR 状态怎么样?

Claude 执行:

bash 复制代码
gh pr list --state open --head feature/user-search
gh pr checks <PR_NUMBER>

输出:

复制代码
📋 PR 状态跟踪
━━━━━━━━━━━━━━━━━━━━━

PR #42: feat(user): 用户列表页新增搜索功能
  目标分支:develop
  状态:✅ Open
  CI 检查:
    ✅ TypeScript 编译通过
    ✅ ESLint 检查通过
    ✅ 单元测试 42/42 通过
    ⏳ 构建中...
  Review:
    ✅ 张三:Approved
    ⏳ 李四:未审查
  合并:等待李四 Review

4.2 更新 PR

复制代码
我在 PR 里又加了一个提交

Claude 自动推送:

bash 复制代码
# 在当前分支上修改
git add .
git commit -m "fix: 补充单元测试"
git push
# PR 自动更新

五、Cherry-pick 自动化

5.1 挑选提交

复制代码
把 commit a1b2c3d 挑到 feature/user-search 分支

Claude 执行:

bash 复制代码
git checkout feature/user-search
git cherry-pick a1b2c3d

5.2 批量挑选

复制代码
把 develop 上的 3 个 fix 提交挑到 release/1.0 分支

Claude 先找到目标提交:

bash 复制代码
# 查找最近的 fix 提交
git log develop --oneline --grep="fix" -3

然后批量 cherry-pick:

bash 复制代码
git checkout release/1.0
git cherry-pick a1b2c3d e5f6g7h i8j9k0l

六、Rebase 自动化

6.1 交互式 Rebase

复制代码
帮我 rebase 最近 3 次提交,把它们 squash 成 1 次

Claude 执行交互式 rebase:

bash 复制代码
git rebase -i HEAD~3
# 自动将后两次标记为 squash
# 合并提交信息

6.2 安全 Rebase

复制代码
把 feature/user-search rebase 到最新的 develop 上

Claude 先检查风险:

复制代码
当前 feature/user-search 有 2 个未推送的提交:
  a1b2c3d feat: 新增搜索功能
  e5f6g7d fix: 修复搜索样式

rebase 会重写提交历史,确认执行?(y/N)

确认后执行:

bash 复制代码
git fetch origin
git rebase origin/develop

七、这一章的核心心得

  1. 提交信息要规范------约定式提交让 git log 一目了然
  2. Claude 自动生成提交信息------分析 diff,提取变更要点
  3. PR 描述可以自动填充------变更概述、文件列表、自测清单
  4. 批量操作提高效率------批量 cherry-pick、批量 squash
  5. PR 状态实时跟踪------CI 检查、Review 进度、合并条件
  6. Rebase 要小心------未推送的提交可以 rebase,已推送的不建议

八、下一步

学会了自动提交和创建 PR,但合并时经常遇到冲突。怎么处理合并冲突,让 Claude 帮你自动解决?

下一篇我们学习 Git 冲突解决。


系列目录:

  1. Claude Code 与 Git 的基础集成------自然语言操作 Git
  2. 智能分支管理------分支策略、自动创建、合并预防
  3. 自动化 Commit 与 PR------生成提交信息、创建 Pull Request ← 本篇
  4. Git 冲突解决------合并冲突的自动检测与修复(待写)
  5. Git Blame 与历史追踪------追溯代码变更的来龙去脉(待写)
  6. Git 标签与版本管理------Release 流程自动化(待写)
  7. Git 钩子自动化------pre-commit、pre-push 自动执行(待写)
  8. Git 团队协作最佳实践------PR Review、Code Review 流程(待写)
相关推荐
YangYang9YangYan5 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
大大大大晴天6 小时前
OpenMetadata VS DataHub VS Atlas VS Gravitino
大数据
Qyr999 小时前
2026全球汽车碳刷行业发展全景分析报告
大数据
蓝速科技9 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
精益数智工坊10 小时前
云计算环境数据怎么同步?云计算集成方案有哪些?
大数据·人工智能·数据挖掘·数据可视化
huashengzsj11 小时前
什么是DMS经销商管理系统?国内经销商管理系统有哪些品牌
大数据
IT毕设梦工厂12 小时前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目
辛迪聊物业数字化12 小时前
智慧社区物业管理软件新手部署与实操指南
大数据·php
字节跳动数据平台12 小时前
模型再强,为什么 Demo 还是进不了生产?
大数据
南京兴帝文化传媒有限公司12 小时前
本地生活服务GEO优化实战:宁国花店地图关键词布局带来订单翻倍的技术路径
大数据·人工智能·生活·geo 优化·geo优化避坑·ai搜索获客