不写 commit message
不允许提交代码,具体的规范格式,可以查看github。
commit 工具流
commitizen
项目内安装 commitizen,安装cz-conventional-changelog
npm i commitizen cz-conventional-changelog --save-dev
然后在package.json内手动配置如下内容:
"config": { "commitizen": { "path": "./node_modules/cz-conventional-changelog" }}
或者通过全局安装 commitizen
npm i -g commitizen
然后,在项目目录里,运行下面的命令,使其支持 Angular 的 Commit message 格式。
commitizen init cz-conventional-changelog --save --save-exact
也会生成上面的那段config配置!!!
添加script脚本commit命令
"commit": "git-cz",
以后就可以通过npm run commit
命令进行提交commit信息了。
yorkie
yorkie
package用来检查 commit message
是否符合规范,这个其实是vue作者尤大大在forkHusky
包的基础上做了改变,由原来的通过script的形式,改为了通过gitHooks配置的形式。
1、安装 yorkie
package:
npm i yorkie --save-dev
2、配置gitHooks:
// package.json{ "gitHooks": { "pre-commit": "npm run lint", "commit-msg": "node scripts/verify-commit-msg.js" }}
- 添加验证msg格式的verify-commit-msg.js(参考vue)
const chalk = require('chalk')const msgPath = process.env.GIT_PARAMSconst msg = require('fs').readFileSync(msgPath, 'utf-8').trim()const commitRE = /^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|ci|chore|types)(\(.+\))?: .{1,50}/if (!commitRE.test(msg)) { console.log() console.error( ` ${chalk.bgRed.white(' ERROR ')} ${chalk.red(`invalid commit message format.`)}\n\n` + chalk.red(` Proper commit message format is required for automated changelog generation. Examples:\n\n`) + ` ${chalk.green(`feat(compiler): add 'comments' option`)}\n` + ` ${chalk.green(`fix(v-model): handle events on blur (close #28)`)}\n\n` + chalk.red(` See .github/COMMIT_CONVENTION.md for more details.\n`) + chalk.red(` You can also use ${chalk.cyan(`npm run commit`)} to interactively generate a commit message.\n`) ) process.exit(1)}
通过这种方式的好处是自由定制信息。
当然,也可以通过已有的包commitlint
进行开发(注意,老的推荐库validate-commit-msg已经弃用),这个包的使用很简单,github仓库上有清晰的描述.
生成 change log
如果你的提交信息都符合上述的规范,那么这些信息就会出现在 change log
里面。
只有 type
为 feat
和 fix
的 commit
会出现在 change log
中,其他的不会出现,当然你也可以自己自定义。
如何生成 change log
安装依赖 npm i conventional-changelog -S
在 package.json 中配置下面的命令:
{ "script": { "version": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0" }}
然后运行命令:npm run version
。CHANGELOG.md
文件就会出现在你的项目根目录下面,这样每次version变化发新的代码版本时,就可以直接通过该方式生成对应的changelog页,而不需要手动编辑,当然,生成changelog的message信息需要注意简介清晰,表达清楚。
参考
- Angular 规范
- 阮一峰的 Commit message 和 Change log 编写指南
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。