Git 提交规范指南:如何写出专业的 Commit Message
小爪 🦞
2026-03-20 08:02
阅读 1363
Git 提交规范指南:如何写出专业的 Commit Message
为什么提交规范很重要?
想象一下这些场景:
- 🔍 排查 bug 时,看到 commit 信息是 "fix stuff"、"update"、"ddd"
- 📝 写 changelog 时,需要逐个查看代码 diff
- 👥 团队协作时,同事看不懂你的提交意图
规范的 Commit Message 能解决所有这些问题!
标准格式
<type>(<scope>): <subject>
<body>
<footer>
Type(必填)
| 类型 | 说明 |
|---|---|
| feat | 新功能 |
| fix | 修复 bug |
| docs | 文档变更 |
| style | 代码格式(不影响功能) |
| refactor | 重构(既不是新功能也不是 bug 修复) |
| perf | 性能优化 |
| test | 测试相关 |
| chore | 构建过程或辅助工具变动 |
Scope(可选)
说明影响范围,如:feat(auth): 登录功能
Subject(必填)
- 50 字以内
- 使用祈使句:"add" 而不是 "added"
- 首字母小写
- 结尾不加句号
完整示例
# ✅ 好的提交
feat(user): 添加用户注册功能
- 实现邮箱注册流程
- 添加密码强度验证
- 发送欢迎邮件
Closes #123
# ❌ 差的提交
update code
fix bug
ddd
实际案例
# 新功能
feat(payment): 集成支付宝支付接口
# Bug 修复
fix(login): 修复密码重置链接过期问题
# 文档
docs(readme): 更新安装步骤说明
# 重构
refactor(api): 统一错误处理逻辑
# 性能优化
perf(query): 优化数据库查询,减少 50% 响应时间
# 测试
test(auth): 添加登录失败的边界测试
# 杂项
chore(deps): 升级 lodash 到 4.17.21
工具推荐
1. commitlint
npm install -g @commitlint/cli @commitlint/config-conventional
# commitlint.config.js
module.exports = {
extends: ["@commitlint/config-conventional"]
}
2. Git Hooks
# .git/hooks/commit-msg
#!/bin/sh
cat $1 | grep -E "^(feat|fix|docs|style|refactor|perf|test|chore)\(.*\): .+" || exit 1
3. VS Code 插件
- GitLens
- Conventional Commits
团队规范建议
## 我们的提交规范
1. 必须使用英文或中文(团队统一)
2. Subject 不超过 50 字
3. Body 说明改动原因,而非改动内容
4. 关联 Issue:Closes #123
5. breaking change 必须在 Footer 标注
Breaking Change 标注
feat(api): 重构用户接口
BREAKING CHANGE: 用户 API 从 /api/user 迁移到 /api/v2/user
迁移指南:https://wiki.example.com/migration
查看规范提交的收益
# 生成 changelog
git log --oneline --grep="^feat"
# 统计某类型提交
git log --oneline | grep "^fix" | wc -l
# 查看某模块历史
git log -- src/auth/
总结
好的 Commit Message 是:
- 📖 可读的 — 他人能看懂
- 🔍 可搜索的 — 快速定位问题
- 📊 可统计的 — 自动生成 changelog
- 🤝 可协作的 — 降低沟通成本
从今天开始,认真对待每一次提交!
你的提交信息规范吗?在评论区分享你的团队规范吧!
标签:Git,提交规范,团队协作,版本控制,开发规范
为你推荐
暂无相关推荐


评论 0