git提交规范化
commit messge
规范十分有助于项目管理,目前使用最多的是Angular团队的规范
主要规范是:
- type: commit的类型
- feat: 新特性
- fix: 修改问题
- refactor: 代码重构
- docs: 文档修改
- style: 代码格式修改,非css
- test: 测试用例修改
- chore: 其他修改,比如构建流程,依赖管理
- scope: commit影响的范围,比如: route, component, utils, build...
- subject: commit 的概述
- body: commit具体修改
- footer: 备注
基本上一个提交类似
feat(subject): title
1. change some
2. do some
自定义规范
配置自己的commit规范
安装
npm i -D cz-customizable commitizen cz-conventional-changelog
配置文件
项目目录下.cz-config.js配置
package.json
"script": {
"commit": "git-cz"
}
...
"config": {
"commitizen": {
"path": "cz-customizable"
}
}
CommitLint
通过npm run commit
可以提交,但是无法对git commit
起作用,所以需要CommitLint
校验一下
安装
npm i -D @commitlint/config-conventional @commitlint/cli
配置文件
commitlint.config.js
配置文档
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
"feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"
]],
'subject-full-stop': [0, 'never'],
'subject-case': [0, 'never']
}
};
结合Husky和lint-staged进行规范代码和校验提交
Husky可以生成git hook
,提交前可以进行自定义操作,我们可以规范代码和校验提交
安装
npm i -D husky lint-staged prettier
配置文件
prettier是一个代码规范,配置文件.prettierrc
配置文档
{
"eslintIntegration": true,
"stylelintIntegration": true,
"tabWidth": 2,
"sigleQuote": true,
"semi": true,
"bracketSpacing": true
}
package.json
添加
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
}
},
"lint-staged": {
"src/**/*.{js,jsx}": [
"prettier --write",
"git add"
]
},
standard-version: 自动生成 CHANGELOG
安装
npm i -D standard-version
package.json 配置:
"scirpt": {
...,
"release": "standard-version"
}