zoukankan      html  css  js  c++  java
  • 自定义commit提交

    首先安装
    1、npm install --save-dev husky
    然后在package.json里面加入

    1 "husky": {
    2     "hooks": {
    3         "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    4     }
    5 },

    2、npm install @commitlint/cli @commitlint/config-conventional --save-dev

    新建文件
    commitlint.config.js

     1 module.exports = {
     2   extends: ['@commitlint/config-conventional'],
     3   rules: {
     4     'type-enum': [
     5       2,
     6       'always',
     7       ['Feat', 'Fix', 'Doc', 'Style','Update', 'Refactor', 'Test', 'Framework', 'Revert']
     8     ],
     9     'type-case': [0,'always','start-case'],
    10     'type-empty': [0],
    11     'scope-empty': [0],
    12     'scope-case': [0],
    13     'subject-full-stop': [0, 'never'],
    14     'subject-case': [0, 'never'],
    15     'header-max-length': [0, 'always', 72]
    16   }
    17 }

    npm install cz-customizable --save-dev
    新建文件
    .cz-config.js

     1 module.exports = {
     2   types: [
     3       {value: 'Feat',     name: '特性:    一个新的特性'},
     4       {value: 'Update',     name: '更新:   更新一个功能'},
     5       {value: 'Fix',      name: '修复:    修复一个Bug'},
     6       {value: 'Style',     name: '样式:    变更的只有样式'},
     7       {value: 'Doc',     name: '文档:    变更的只有文档'},
     8       {value: 'Refactor', name: '重构:    代码重构,注意和特性、修复区分开'},
     9       {value: 'Test',     name: '测试:    添加一个测试'},
    10       {value: 'Framework',    name: '框架:    开发框架变动(构建、脚手架工具等)'},
    11       {value: 'Revert',   name: '回滚:    代码回退'}
    12     ],
    13     scopes: [
    14       {name: '系统框架'},
    15       {name: '公共组件'},
    16     ],
    17   allowTicketNumber: false,
    18   isTicketNumberRequired: false,
    19   ticketNumberPrefix: 'TICKET-',
    20   ticketNumberRegExp: '\d{1,5}',
    21 
    22   // it needs to match the value for field type. Eg.: 'fix'
    23   /*
    24   scopeOverrides: {
    25     fix: [
    26 
    27       {name: 'merge'},
    28       {name: 'style'},
    29       {name: 'e2eTest'},
    30       {name: 'unitTest'}
    31     ]
    32   },
    33   */
    34   // override the messages, defaults are as follows
    35   messages: {
    36       type: '选择一种你的提交类型:',
    37       scope: '选择一个scope (可选):',
    38       // used if allowCustomScopes is true
    39       customScope: 'Denote the SCOPE of this change:',
    40       subject: '短说明:
    ',
    41       body: '长说明,使用"|"换行(可选):
    ',
    42       breaking: '非兼容性说明 (可选):
    ',
    43       footer: '关联关闭的issue,例如:#31, #34(可选):
    ',
    44       confirmCommit: '确定提交说明?'
    45   },
    46 
    47   allowCustomScopes: true,
    48  // allowBreakingChanges: ['特性', 'Fix'],
    49   // skip any questions you want
    50   skipQuestions: ['body'],
    51 
    52   // limit subject length
    53   subjectLimit: 72,
    54   // breaklineChar: '|', // It is supported for fields body and footer.
    55   // footerPrefix : 'ISSUES CLOSED:'
    56   // askForBreakingChangeFirst : true, // default is false
    57 };

    最后配置package.json
    "commit": "node ./node_modules/cz-customizable/standalone.js"

    使用git add .之后就是用npm run commit 来做本地git代码暂存

     提交之前应该在做一次代码检查

    "husky": {
        "hooks": {
          "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
          "pre-commit": "lint-staged --allow-empty"
        }
      },
      "lint-staged": {
        "src/**/*.{ts,tsx,js,jsx}": [
          "eslint --fix"
        ]
      },

    加上这个配置commit的时候就会自动检测代码是否符合要求,不符合会报错终止代码提交

    参考文档
    https://segmentfault.com/a/1190000017790694
    https://blog.csdn.net/weixin_33890526/article/details/91393527

    日常所遇,随手而记。
  • 相关阅读:
    block 专题--基础
    iOS开发之沙盒机制
    App上架流程(2016最新)
    团队项目个人总结
    结对开发训练(续)(郭林林&胡潇丹)
    结对开发训练(郭林林&胡潇丹)
    计算一篇英语文章出现频率最高的十个单词
    TLB和大叶
    韩顺平的java入门到精通中serversql笔记(包括emp表和dept表,linux的mysql版)
    IPv6
  • 原文地址:https://www.cnblogs.com/zhihou/p/14369457.html
Copyright © 2011-2022 走看看