Git Commit 团队规范限制
前言
在团队进行开发协作的时候,不规范的Git Commit提交会使得项目的Git Log杂乱无章,哪些是新功能、哪些是修复bug等等都无法得知,因此规范团队的提交是非常有必要的,所以规范约束就特别需要了。
使用validate-commit-msg和husky去规范Commit提交
validate-commit-msg
可以来检查我们的commit规范,husky
可以把validate-commit-msg
作为一个githook来验证提交消息。
安装配置
npm i validate-commit-msg -D
npm i husky -D
配置validate-commit-msg
validate-commit-msg
的配置可以在根目录创建一个.vcmrc文件或者在package.json
中配置
// .vcmrc文件
{
"types": ["feat", "fix", "docs", "style", "refactor", "test", "chore", "revert"],
"scope": {
"required": false,
"allowed": ["*"],
"validate": false,
"multiple": false
},
"warnOnFail": false,
"maxSubjectLength": 100,
"subjectPattern": ".+",
"subjectPatternErrorMsg": "subject does not match subject pattern!",
"helpMessage": "",
"autoFix": false
}
// package.json
{
"config": {
"validate-commit-msg": {
/* your config here */
}
}
}
如果两个都配置是优先走.vcmrc文件。查找不到该文件才在package.json
中查找
配置husky,使用validate-commit-msg的规则来验证我们所提交的commit信息
// package.json
"husky": {
"hooks": {
"commit-msg": "validate-commit-msg"
}
}
验证提交
// 错误的commit信息是不允许提交的
git commit -m "fffffff"
husky > commit-msg (node v10.15.0)
INVALID COMMIT MSG: does not match "<type>(<scope>): <subject>" !
fffffff
husky > commit-msg hook failed (add --no-verify to bypass)
// 正确的允许提交
git commit -m "fix: 修复了一个bug"
husky > commit-msg (node v10.15.0)
[pregray 33e57b37dd] fix: 修复了一个bug
1 file changed, 1 insertion(+), 1 deletion(-)