Git提交自动化验证配置

299 阅读1分钟

目的

1.     规范commit message,形成统一性,便于查找历史记录;

2.     验证代码规范性,避免不规范的代码提交

安装包

@commitlint/cli、@commitlint/config-conventional: 规范commit message提交文案;

Husky: 在 .git/hooks 中写入 pre-commit 等脚本激活钩子,在 Git 操作时触发;

lint-staged: 参考 Git 中 staged 暂存区概念,在每次提交时只检查本次提交的文件。

1、commit规范

创建配置文件:commitlint.config.js,存放具体提交信息规范(可自定义),提交信息必须根据每次提交类型写成 “: ”( feat: 我是一次新建)形式。

 module.exports = {

    extends: ['@commitlint/config-conventional']

};

2、Husky钩子

配置具体规则;其中"pre-commit"属性配置验证前eslint规则,"eslint --cache --fix --ignore-path .gitignore"(不建议在此处进行—fix修复,会出现不确定的错误)

3、Lint-staged

只验证本次提交是的文档是否遵循eslint规范,无需每次提交检测全项目文件规范,(可去掉)。

Pakage.json配置

  "husky": {

    "hooks": {

      "commit-msg": "commitlint -e $HUSKY_GIT_PARAMS",

      "pre-commit": "lint-staged"

    }

  },

  "lint-staged": {

    "src/**/*.{js,vue}": [

      "eslint",(具体配置)

      "git add"

    ]

  },

 

错误情况:(以下情况git均无法提交)

1、Commit不规范

image.png

2、未遵循Eslint

image.png

参考

1.     www.npmjs.com/package/@co…

2.     blog.csdn.net/huangpb123/…