给项目中引入了cz-customizable来辅助/矫正我们git提交规范

原创 野人  2021-12-17 22:07  阅读 94 次

起因,还是因为新项目使用了Ant Design Pro做为基本框架,里头集成很多企业规范化的工具,这也间接让我们学习到了一些大厂标准化/规范化的流程。

所以,像git提交消息,人家是有严格的格式要求的,比如像新增一个功能,他们gitCommit message格式一定是这样的子的;

git commit -m "feat(xx模块):新增的xx功能"

其中的feat,是Commit message的格式Header部分中一小部分,包括三个字段:type(必需)、scope(可选)和subject(必需),关于这部分的相关资料,大家可以查看这篇文章:https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html,因为它并不是本篇文章所要说的重要内容。

但是每次都这样输入的话,有时候也挺麻烦的,要是有工具可以在提交的时候,只要把这些格式,供我们选择就可以了,那是不是很方便了,这就是我们接下来要讲的cz-customizable

cz-customizable其实是commitizen的可自定义的版本,怎么理解呢?简单的来说,就是commitizen中的Commit message格式是固定的,参考 AngularJS的,所以是死板的不带修改的,但是cz-customizable就不同了,它的Commit message就用使用者自由的发挥,灵活性更大,所以我选择了它,具体使用方法如下:

1、yarn add cz-customizable -D 或者 npm install cz-customizable -D

2、找到项目根目录下的package.json文件,添加相应的脚本(如下)。

"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/ npm run commit

最后,看完文章后,如果有兴趣的话,可以动手实践下,如果出现了问题,可以一起交流下,也可以分享下比这更好的方案,期待与你们的互相学习交流。

本文地址:https://www.yerenwz.com/5389.html
版权声明:本文为原创文章,版权归 野人 所有,欢迎分享本文,转载请保留出处!

发表评论