Skip to content

Latest commit

 

History

History
199 lines (136 loc) · 5.28 KB

File metadata and controls

199 lines (136 loc) · 5.28 KB

Git Commit规范

标准化的 commit 信息,让项目历史清晰可追溯、便于自动化生成日志、快速定位问题、团队协作更高效

一、为什么需要 Git Commit 规范?

  1. 可读性强:快速了解每次提交的目的和修改内容
  2. 可维护性高:方便代码回滚、排查 bug、追溯历史
  3. 自动化支持:可自动生成 CHANGELOG 发布日志
  4. 团队协作:统一团队提交风格,降低沟通成本

二、主流规范:Angular 提交规范(最常用)

1. 提交格式

<type>(<scope>): <subject>
# 空一行
<body>
# 空一行
<footer>
  • 必填type + subject
  • 可选scopebodyfooter

2. 字段详细说明

① type(提交类型,必填)

用于说明本次提交的修改类别,只能使用以下类型:

类型 含义 使用场景
feat 新功能 新增业务功能、模块、接口
fix 修复 bug 修复线上 / 测试环境 bug
docs 文档修改 仅修改 README、注释、文档
style 代码格式 不影响代码逻辑的修改(空格、分号、格式化)
refactor 重构 既不是新增功能,也不是修复 bug 的代码改动
perf 性能优化 提升性能、加载速度的修改
test 测试相关 新增 / 修改单元测试、集成测试
build 构建工具 影响构建系统或外部依赖的修改(webpack、npm)
ci 持续集成 CI 配置文件和脚本修改(GitHub Actions、Jenkins)
chore 其他修改 不修改 src/test 的其他操作(依赖更新、构建脚本)
revert 回滚提交 撤销之前的 commit

② scope(影响范围,可选)

用于说明本次修改影响的范围,让提交更精准:

  • 示例:(login)(user)(router)(api)(组件名)
  • 无特定范围可写 * 或省略

③ subject(简短描述,必填)

  • 简洁描述本次修改的核心内容(不超过 50 字符)
  • 规则:
    1. 使用动词开头,首字母小写
    2. 结尾不加句号
    3. 语义清晰,一目了然

④ body(详细描述,可选)

  • 详细说明修改动机实现思路注意事项
  • 每行不超过 72 字符,可分多行书写

⑤ footer(备注信息,可选)

  1. 破坏性变更:以 BREAKING CHANGE: 开头,说明不兼容修改
  2. 关闭 IssueCloses #123, #456 自动关联并关闭 GitHub/GitLab Issues

三、标准提交示例

1. 最简规范提交(最常用)

git commit -m "feat: 添加用户登录功能"

2. 带作用域的提交

git commit -m "fix(login): 修复登录页验证码过期问题"

3. 完整格式提交

git commit -m "feat(user): 新增用户信息编辑功能

- 支持修改昵称、头像、手机号
- 增加表单校验逻辑
- 适配移动端样式

Closes #789"

4. 回滚提交

git commit -m "revert: 回滚登录页功能提交"

5. 破坏性变更

git commit -m "perf(api): 重构用户数据接口

BREAKING CHANGE: 用户信息返回字段结构调整,前端需适配更新"

四、❌ 不良提交(禁止使用)

git commit -m "修改了一些东西"
git commit -m "修复bug"
git commit -m "更新代码"
git commit -m "aaa"
git commit -m "feat添加首页"  # 缺少冒号空格

五、✅ 优质提交范例对照

不良提交 规范提交
改了登录页 fix (login): 修复登录按钮点击无响应问题
新增首页 feat (home): 新增首页 banner 轮播图
格式化代码 style: 全局代码格式化修复缩进
更新依赖 chore: 升级 axios 到 1.7.2 版本

六、进阶:强制约束提交规范(团队推荐)

1. 安装工具

# 安装提交规范校验工具
npm install -g commitizen cz-conventional-changelog

2. 配置使用

在项目 package.json 添加配置:

{
  "config": {
    "commitizen": {
      "path": "cz-conventional-changelog"
    }
  }
}

3. 使用规范提交

git add .
git cz  # 交互式生成规范commit

七、快速使用速查表

核心记忆口诀

类型(范围): 简短描述

常用提交命令速查

# 新功能
git commit -m "feat: 新增xxx功能"

# 修复bug
git commit -m "fix: 修复xxx问题"

# 文档修改
git commit -m "docs: 更新README说明"

# 代码格式化
git commit -m "style: 格式化代码格式"

# 代码重构
git commit -m "refactor: 重构xxx逻辑"

# 依赖/构建修改
git commit -m "chore: 更新项目依赖包"

总结

  1. 核心格式:<type>: <subject>,简单易记
  2. 核心原则:清晰、简洁、统一,不写无意义提交
  3. 团队协作:强制使用规范,提升项目可维护性
  4. 工具加持:配合 git cz 交互式提交,零学习成本