起因,还是因为新项目使用了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
最后,看完文章后,如果有兴趣的话,可以动手实践下,如果出现了问题,可以一起交流下,也可以分享下比这更好的方案,期待与你们的互相学习交流。