Git项目提交规范结合Husky + commitlint使用

一、前置条件

  为了更好地 GIT 提交,加入了代码提交规范和规范校验,优雅的提交;

  方便团队协作和快速定位问题,采取 Husky + commitlint 辅助项目做约定。

   npm install --save-dev husky  

  For windows install commintlint:

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

二、配置

  // 命令生成配置文件 commitlint.config.js 或 .commitlintrc.js

   echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js   

  package.json 添加commitlint配置项:

"husky": {
    "hooks": {
      "pre-commit": "npm run lint",
      "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS"
    }
}

  husky是git hook工具,文件格式 .huskyrc,它能帮你阻挡不好的代码提交和推送;

  (pre-commit 钩子命令用于提交前运行检查,看项目情况决定要不要使用,

   "pre-commit": "lint-staged"  扩展使用lint-staged库辅助,或者是自定义lint,

   "lint": "eslint src --fix --ext .ts,.tsx "  

         

  或者创建文件 .lintstagedrc  

  (如果无pre-commit限制,使用 --no-verify  eg: git commit --no-verify -m 'feat: 增加 xxx 功能'  )

三、定制提交规范

  1.提交格式(冒号后面有空格):

    '<type>[scope]: <subject>'
  // eg: git commit -m 'feat: 增加什么功能'

    type|subject 必选,scope 可选;

    scope 可省略,用于说明commit的影响范围和模块;

    subject 是commit的目的简短描述,可以配置最大长度限制,配置72字符;

  2.常用type类型

'build' 

项目构建的提交(eg:webpack配置等)
'upd'  更新某个功能
'feat' 新功能(feature)
'fix' 修补bug

'refactor'

重构代码(不是新增也不是修补代码)
'style' 不影响程序逻辑的改动(eg:格式)
'perf' 性能优化
'revert' 回滚到某个更早的提交

'docs'

文档更新

'chore' 

其他类型(eg:构建过程或辅助工具的变化)

'test'

增加测试用例

  3. commitlint config rules

    level: 0为disable,1为warning,2为error;

     第二位: 'always'或'never';

     第三位: 值

  4.配置图如下:

  

四、范例

  终端(开发分支)步骤:

  git add . -> git commit –no-verify –m ‘upd: 更新某个功能’-> git push

  github desktop /vscode git管理/TortoiseGit客户端:

  暂存更改 -> 描述(upd: 更新某个功能) commit  ->  push/fetch

  

原文地址:https://www.cnblogs.com/anniey/p/14134076.html