commit message 規範
http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.htmlhtml
自動校驗 commit message
參考:https://github.com/conventional-changelog/commitlintnode
-
安裝依賴 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-changeloggit
-
安裝依賴 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
時會自動生成帶所發佈版本號的 changeloggithub
有任何問題能夠加入 聊天室 和做者進行交流: https://fiora.suisuijiang.com/web
本文分享自微信公衆號 - 牧碼的星星(gh_0d71d9e8b1c3)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。npm