规范git commit日志 和 Change log 编写指南
git146 阅读0 评论
一、GitHook 工具 — husky
husky 是一个为 git 客户端增加 hook 的工具。将其安装到所在仓库的过程中它会自动在 .git/ 目录下增加相应的钩子实现在 pre-commit 阶段就执行一系列流程保证每一个 commit 的正确性。
该文主要讲的配置方法是根据v4版本的,如果安装的是v5版本,可以参考官方文档
安装
#npm
npm install husky@4.3.8 --save-dev
# yarn
yarn add husky@4.3.8 --dev
配置
// package.json
{
"hooks": {
"pre-commit": "npm run test"
}
}
二、校验commit格式规范 — Commitlint
有了Husky之后,我们有能力在Git的钩子里做一些事情,就可以对进行代码的提交规范和规范的校验,优雅的提交可以方便团队协作和快速定位问题。这里推荐Commitlint,当然,有兴趣的可以了解下Gitmoji。
安装
npm install --save-dev @commitlint/config-conventional @commitlint/cli
// 生成配置文件commitlint.config.js,当然也可以是 .commitlintrc.js
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
配置
在husky的配置中加入Commitlint配置:
"husky": {
"hooks": {
"pre-commit": "npm run test",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
定制提交规范
默认的提交格式为
<type>: <subject>
常用的type类别
- feat: 一个新功能
- fix: 一个bug修复
- build: 影响构建系统或外部依赖的更改(示例范围:gulp, broccoli, npm)
- ci: 对ci配置文件和脚本的更改(示例范围:Travis, Circle, BrowserStack, SauceLabs)
- refactor: 既不修复bug也不增加特性的代码更改
- perf: 提高性能的代码更改
- chore: 其他不修改src或测试文件的更改
- docs: 仅更改文档
- revert: 恢复前一个提交
- test: 添加缺失的测试或纠正现有的测试
- style: 不影响代码含义的更改(空白、格式、缺少分号等)
git commit -m "foo: some message" # fails
git commit -m "fix: some message" # passes
subject是 commit 目的的简短描述,可以做一些配置,如最大长度限制。
三、帮助commit提交规范 — Commitizen
通过Commitizen提交时,系统将提示您在提交时填写所有必需的提交字段。不需要再等到稍后git提交钩子函数来检测提交内容从而拒绝您的提交请求。
安装
# npm
npm install commitizen --save-dev
# yarn
yarn add commitizen --dev
配置
初始化cz-conventional-changelog
# npm
commitizen init cz-conventional-changelog --save-dev --save-exact
# yarn
commitizen init cz-conventional-changelog --yarn --dev --exact
使用 git cz 替换掉 git commit 命令
// package.json
{
"scripts": {
"commit": "git-cz"
}
}
使用npm来替代commit
npm run commit
四、生成提交日志 — Changelog
安装
# npm
npm install conventional-changelog-cli --save-dev
# yarn
yarn add conventional-changelog-cli --dev
配置
如果这是您第一次使用此工具,并且想要生成所有以前的变更日志,则可以执行:
npx conventional-changelog -p angular -i CHANGELOG.md -s -r 0
添加指令
// package.json
{
"scripts": {
"genlog": "conventional-changelog -p angular -i CHANGELOG.md -s"
}
}
生成日志
npm run genlog
相关文章
评论 (0)
- 还没有评论,来第一条吧。