Git提交规范:commitlint + husky

提交代码的时候,能够根据自定义的提交信息、代码规范进行自动校验,避免多人协作开发时提交代码信息不准确或者代码格式的不统一。

Husky

1、安装 husky

npm install husky --save-dev 

2、在项目中安装 husky

npx husky install

查看一下git配置,我们可以发现core.hooksPath指向为.husky。这里涉及husky实现原理:替换.git/hooks的目录为自定义目录,且该目录会提交到远程仓库。

3、添加 husky install 到 package.json scripts 中

为了让其他人在此项目中安装依赖后也能自动创建.husky目录并指定该目录为git hooks所在的目录,我们需要在package.json里面添加一条脚本命令"prepare": "husky install",然后执行npm run prepare

安装好husky之后,需要配置检测规则。

Commitlint

该工具用于帮助我们规范提交信息

1、安装 commitlint

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

2、在项目根目录创建 commitlint.config.js 文件

module.exports = {
  // 忽略部分
  ignores: [(commit) => commit.includes("init")],
  // 继承的规则
  extends: ["@commitlint/config-conventional"],
  // 定义规则类型
  rules: {
    "body-leading-blank": [2, "always"],
    "footer-leading-blank": [1, "always"],
    "header-max-length": [2, "always", 108],
    "subject-empty": [2, "never"],
    "type-empty": [2, "never"],
    // type 类型定义,表示 git 提交的 type 必须在以下类型范围内
    "type-enum": [
      2,
      "always",
      [
        "feat", // 新增feature
        "fix", // 修复bug
        "perf", // 优化相关,比如性能、体验的提升
        "style", // 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑;
        "docs", //  仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等;
        "test", // 测试用例,包括单元测试、集成测试等
        "refactor", // 代码重构,没有加新功能或者修复bug
        "build",
        "ci",
        "chore", // 改变构建流程、或者增加依赖库、工具等
        "revert", // 回滚到上一个版本
        "wip",
        "workflow",
        "types",
        "release",
      ],
    ],
  },
}; 

3、使用 commit-msg 钩子规范化提交信息

使用以下命令快速创建git hooks的commit-msg钩子,这样每次commit的时候都会由 commitlint对commit信息进行一次检验。

npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"' 

4、提交git commit 测试

失败

成功

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容