Git Commit规范
Git Commit 规范说明
规范化的commit信息可以方便每次release发版时自动生成对应的changelog
自动生成CHANGELOG信息
可以使用standard-version
基于nodejs的规范化工具
在每次发版之前在项目跟目录下执行,就会自动生成changelog信息
| 1 | npx standard-version | 
commit信息规范
commit 格式说明
commit约定格式标准
commit 的格式包含 Header、Body、Footer 三个部分(其中,Header 是必须,Body 和 Footer 可以省略。),
形如:
| 1 | <type>(<scope>): <subject> | 
最简单的格式如下
| 1 | <type>: <subject> | 
Header
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
- type用于说明 commit 的类别,只允许使用下面几个标识。
- scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
- subject是 commit 目的的简短描述,不超过50个字符。
合法的 type 标识:
| 类型(type) | 描述 | 
|---|---|
| feat | 新功能 | 
| fix | 修补bug | 
| chore | 不修改src或者test的其余修改,例如构建过程或辅助工具的变动 | 
| docs | 文档 | 
| style | 不影响代码含义的改动,例如格式化,去掉空格、改变缩进、增删分号 | 
| refactor | 重构 | 
| perf | 提高性能的改动 | 
| test | 添加测试或者修改现有测试 | 
| revert | 执行git revert打印的message | 
示例:
| 1 | feat: 🎸 添加注册功能; | 
Body(可省略)
Body 部分是对本次 commit 的详细描述,可以分成多行。
应该说明代码变动的动机,以及与以前行为的对比。
Footer(可省略)
Footer 部分只用于两种情况。BREAKING CHANGE(不兼容的改变) 和 Closes (关闭的Issue)
一个完整的gitcommit规范示例:
| 1 | feat: 测试commit规范 | 
安装git commit工具:
使用 cz-cli 规范commit格式,使用 commitlint 检查commit是否符合规则
全局配置
- 全局安装 commitizen1 npm install -g commitizen 
- 全局安装 cz-conventional-changelog1 npm install -g cz-conventional-changelog 
- 在用户目录下配置 commitizen1 
 2# windows cmd下无法执行,可以手动去 C:\Users\{User}\ (User为你电脑用户名)目录下新建 .czrc 文件 
 echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
项目配置
在全局配置的第3步中的
.czrc文件放到项目下就可以了
使用 git cz 命令进行提交代码
以后提交代码都使用 git cz 替代 git commit,使 commit 内容符合规定的格式。
若还是用 git commit ,则需要使得 commit 内容符合规定的格式。
| 1 | git cz | 
IDEA安装Git Commit Template插件
在IDEA的 settings->plugins 中安装 Git Commit Template 插件
在提交代码时使用插件格式化commit信息


检查git commit信息是否符合规范
//TODO