git commit规范化
项目中,每次使用git提交代码时都需要填写提交信息,每个人填写提交信息的风格都不一样,为了保持项目中git commit一致性,就需要对git commit进行规范化处理,规范的git commit 可以让项目的提交信息整洁明了,也可以让我们通过提交信息可以清晰的知道本次提交的内容,出现问题时也可以更快速的查询问题,如果项目需要生成changelog日志,规范的git commit可以让我们使用工具快速生成changelog日志
目前git commit 规范使用最多的是按照Angular团队使用的规范,提交信息都包括三个部分:Header,Body 和 Footer,如下:
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>
其中,Header 是必需的,Body 和 Footer 可以省略。
项目中使用:
1、安装commitizen依赖
npm install --save-dev commitizen
使用commitizen的命令是git-cz,如果我们全局安装commitizen,就可以直接在项目中使用git-cz命令,否则需要使用npx git-cz来执行,为了以后使用方便,我们可以在package.json的scripts中进行如下配置:
// package.json
{
"scripts": {
...
"commit": "git-cz",
...
}
}
这样我们就可以通过在命令行工具中使用npm run commit来使用commitizen
2、commitizen需要配合着适配器使用,安装cz-conventional-changelog依赖,可以让我们自己项目的git提交信息符合Angular团队的规范
npm install --save-dev cz-conventional-changelog
在package.json文件中配置cz-conventional-changelog的使用:
// package.json
{
...
"config": {
"commitizen": {
"path": "node_modules/cz-conventional-changelog"
},
}
...
}
此时,在提交代码时,我们就可以通过npm run commit命令按照Angular团队的规范来提交信息。但是由于没有进行强制校验,如果还是按照以往使用git commit -m <提交信息>提交任何风格的信息也是可以的,为了保证提交信息规范性,使用husky、commitlint对提交信息进行强制校验,其中commitlint用于校验提交信息是否符合规范,使用husky的commit-msg钩子可以让我们在每次提交信息前触发commitlint校验。
3、信息校验时除了安装@commitlint/cli和husky外,还要按照需要遵循的规则,我们继续使用Angular团队信息提交规范,安装@commitlint/config-conventional;
npm install --save-dev @commitlint/config-conventional @commitlint/cli
npm install --save-dev husky
然后在package.json中配置commitlint和husky如下:
// package.json
{
...
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
...
}
husky可以在我们执行git commit调用commitlint对提交信息进行格式校验,校验失败则提交失败,只有校验成功才能提交
至此,git commit规范化已完成,我们可以使用npm run commit采用问答交互式的方法创建git commit,也可以自行按照规范进行git commit提交。
可能遇到的问题:
1、安装之后,git commit时husky校验提交信息不生效
解决办法:git版本太低,升级git版本可解决,husky要求的git版本最低2.13.2

2、在执行npm run commit在git中出现交互式界面时,上下选择不生效(针对windows用户)
解决办法:在C盘》用户》自己名字 目录下找到.bashrc文件,在文件中添加alias npm='winpty npm.cmd',保存即可
参考文献:
[1] 优雅的提交你的 Git Commit Message
[2] Commit message 和 Change log 编写指南
本文介绍了如何在项目中实施git commit规范化,遵循Angular团队的提交信息规范,包括Header, Body和Footer三部分。通过安装commitizen、commitlint和husky,确保提交信息的一致性和整洁性,便于生成changelog日志和问题排查。同时,列举了解决校验不生效和交互式界面问题的方法。"
131266908,18874193,Python矩阵转置:NumPy实现详解,"['Python', 'NumPy', '矩阵运算', '科学计算']
820

被折叠的 条评论
为什么被折叠?



