【Git小技巧】编写优雅的 commit message 并自动生成 changelog
前端下午茶
共 1921字,需浏览 4分钟
·
2020-09-06 03:58
commit message 规范
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
自动校验 commit message
参考:https://github.com/conventional-changelog/commitlint
安装依赖 npm install -D @commitlint/{config-conventional,cli} husky
在 package.json 添加 commitlint 配置和 git hook
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
}
提交 commit 触发校验
通过交互界面生成符合规范的 commit message
安装依赖 npm install -D commitizen cz-conventional-changelog
在 package.json 中新增一条 script
"scripts": {
...
"commit": "git-cz"
}
在 package.json 添加 commitizen 配置
"config": {
"commitizen": {
"path": "node_modules/cz-conventional-changelog"
}
}
执行 git add .
和npm run commit
自动生成 changelog
参考:https://github.com/CookPete/auto-changelog
安装依赖 npm install -D auto-changelog
创建配置文件 .auto-changelog
{
"template": "CHANGELOG.template",
"unreleased": true,
"commitLimit": false
}
创建自定义 changelog 模板 CHANGELOG.template.**注意替换组名和仓库名**
# Changelog
{{#each releases}}
## [{{title}}]
{{#commit-list commits heading='### Breaking Change' message='\[break\]'}}
- {{subject}} [{{shorthash}}]({{href}})
{{/commit-list}}
{{#commit-list commits heading='### New Feature' message='feat: ' exclude='\[break\]'}}
- {{subject}} [{{shorthash}}]({{href}})
{{/commit-list}}
{{#commit-list commits heading='### Bug Fix' message='fix: ' exclude='\[break\]'}}
- {{subject}} [{{shorthash}}]({{href}})
{{/commit-list}}
{{/each}}
在 package.json 中新增 script
"scripts": {
...
"changelog": "auto-changelog",
"version": "auto-changelog -p && git add CHANGELOG.md"
}
执行 npm run changelog
执行npm version
时会自动生成带所发布版本号的 changelog
最后
如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个小忙:
点个「在看」,让更多的人也能看到这篇内容(喜欢不点在看,都是耍流氓 -_-)
欢迎加我微信「qianyu443033099」拉你进技术群,长期交流学习...
关注公众号「前端下午茶」,持续为你推送精选好文,也可以加我为好友,随时聊骚。
评论