起因,还是因为新项目使用了Ant Design Pro
做为基本框架,里头集成很多企业规范化的工具,这也间接让我们学习到了一些大厂标准化/规范化的流程。
所以,像git
提交消息,人家是有严格的格式要求的,比如像新增一个功能,他们git
的Commit message
格式一定是这样的子的;
git commit -m "feat(xx模块):新增的xx功能"
其中的feat,是Commit message
的格式Heade
部分中一小部分,包括三个字段:type(必需)、scope(可选)和subject(必需),关于这部分的相关资料,大家可以查看这篇文章:https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html,因为它并不是本篇文章所要说的重要内容。
但是每次都这样输入的话,有时候也挺麻烦的,要是有工具可以在提交的时候,只要把这些格式,供我们选择就可以了,那是不是很方便了,这就是我们接下来要讲的cz-customizable
。
cz-customizable
其实是commitize
的可自定义的版本,怎么理解呢?简单的来说,就是commitize
中的Commit message
格式是固定的,参考 AngularJS
的,所以是死板的不带修改的,但是cz-customizable
就不同了,它的Commit message
就用使用者自由的发挥,灵活性更大,所以我选择了它,具体使用方法如下:
1、yarn add cz-customizable -D
或者 pm install cz-customizable -D
2、找到项目根目录下的package.jso
文件,添加相应的脚本(如下)。
"scripts" : { ... "commit": "node ./node_modules/cz-customizable/standalone.js" }
3、编写符合自己/公司的git提交规则,我分享一个我目前在用的吧:
// 参考资料: // https://github.com/leoforfree/cz-customizable // https://juejin.cn/post/6976891381914533918 // https://juejin.cn/post/6844904025868271629 // https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html 'use strict'; module.exports = { types: [ { value: 'feat', name: 'feat: 添加了个很棒的功能' }, { value: 'fix', name: 'fix: 修复了一些 bug' }, { value: 'docs', name: 'docs: 更新了一下文档' }, { value: 'UI', name: 'UI: 修改了一下样式' }, { value: 'chore', name: 'chore: 其他修改(不在上述类型中的修改)' }, { value: 'perf', name: 'perf: 更改了下代码,以提高性能' }, { value: 'style', name: 'style: 修改了一下代码风格' }, { value: 'locale', name: 'locale: 为国际化做了微小的贡献' }, { value: 'refactor', name: 'refactor: 代码重构,注意和特性、修复区分开' }, { value: 'revert', name: 'revert: 恢复上一次提交' }, { value: 'test', name: 'test: 添加一个测试' }, ], scopes: [ { name: '登录' }, { name: '后台-首页' }, { name: '后台-计算资源' }, { name: '后台-存储资源' }, ], messages: { type: '选择一种提交的类型:', scope: '更改的范围:scope (可选):\n', // used if allowCustomScopes is true customScope: 'Denote the SCOPE of this change:', subject: '短说明:\n', body: '长说明,使用"|"换行(可选):\n', breaking: '非兼容性说明 (可选):\n', footer: '关联关闭的issue,例如:#31, #34(可选):\n', confirmCommit: '确定提交?', }, allowCustomScopes: true, allowBreakingChanges: ['特性', '修复'], subjectLimit: 100, };
4、改变提交的方式习惯,从原先的git commit -m "xx"
变为yarn commit
/ pm run commit
最后,看完文章后,如果有兴趣的话,可以动手实践下,如果出现了问题,可以一起交流下,也可以分享下比这更好的方案,期待与你们的互相学习交流。