JavaScript开发过程中规范commit msg意义详解

2022-04-15 0 811
目录
  • 规范 commit msg 的意义
  • commitizen
  • commitlint
  • 安装依赖
    • 添加 .commitlint.config.js 文件
    • 配置 git hooks
    • 总结一下:
      • step 1: 安装依赖
      • step 2: 添加配置文件
  • git cz 的原理

    规范 commit msg 的意义

    规范化、格式化的 commit message 可以让我们更好的追踪需求的演进、回滚时能够快速的找到提交、最次也能让我们的仓库显的更专业。

    团队如何规范 commit msg呢,靠宣讲、靠文档?当然得靠工具生成和约束。前端圈轮子那么多,这种工具不在话下。

    • commitizen 问答式生成 commit msg 格式化
    • commitlint 校验卡控 commit msg 规范化

    commitizen

    commitizen: simple commit conventions for internet citizens.

    commitizen/cz-cli 借助它提供的 git cz 命令替代 git commit 命令,生成符合规范的 commit message。

    commitizen 默认的提交规范是 angular 团队强规定的,若想自定义我们还需配合 Adapter(适配器)此处我们用cz-customizable

    下面我们直接来介绍项目级配置。

    进行 commitizen 配置

    执行 npm install -D commitizen、npm install -D cz-customizable命令

    然后在 package.json文件中 scripts 和 config 字段进行配置

    {
      "scripts": {
        "commit": "cz"
      },
      "config": {
        "commitizen": {
          "path": "./node_modules/cz-customizable"
        },
        "cz-customizable": {
          "config": ".cz-configrc.js"
        }
      }
    }

    添加 .cz-configrc.js文件

    在项目的根目录下执行 npm run commit试试吧

    后续t npm run commit 替换 git commit

    commitlint

    如何保证组内成员都使用npm run commit命令呢?当然是用工具。

    这里我们用 commitlint,作用和 eslint 类似。利用 git hooks 拦截不符合规范的 commit msg。

    安装依赖

    npm install --save-dev @commitlint/{config-conventional,cli} 
    npm install yorkie --save-dev

    添加 .commitlint.config.js 文件

    扩展开源配置,然后再添加部分个性化 rules

    配置 git hooks

    为了拦截不规范的 commit msg,需要利用 git hooks 的 commit-msg 自动执行 commitlint

    "gitHooks": {
      "commit-msg": "commitlint -e $GIT_PARAMS"
    }

    乱输入一个 commit msg 试试,发现非常神奇。卡控生效了。

    按照以上步骤就可以规范你们团队的 commit msg了。

    总结一下:

    step 1: 安装依赖

    npm install -D commitizen cz-customizable
    npm install -D @commitlint/{config-conventional,cli}
    npm install -D yorkie 

    step 2: 添加配置文件

    自定义格式的commitizen配置文件 .cz-configrc.js ,校验规范的 .commitlint.config.js 文件

    配置 package.json

    {
      "scripts": {
        "commit": "cz"
      },
      "config": {
        "commitizen": {
          "path": "./node_modules/cz-customizable"
        },
        "cz-customizable": {
          "config": ".cz-configrc.js"
        }
      },
      "gitHooks": {
        "commit-msg": "commitlint -e $GIT_PARAMS"
      }
    }

    git cz 的原理

    如果你是全局按照的 commitizen,你还能用 git cz命令代替 npm run commit

    git cz 是什么玩意? git 的命令,还 commitizen 的命令。

    通过查阅资料 git cz 是 commitizen 利用 git 的文件命名规范生成的自定义 git 命令。

    Git遵循命名约定git-<subcmd>自动解析PATH中可执行文件中的子命令。 这些子命令可以用git <subcmd>执行。

    我们看下 commitizen 仓库 package.json 的 bin 字段。真香大白了,就是 git 的自定义命令

     "bin": {
        "cz": "./bin/git-cz",
        "git-cz": "./bin/git-cz",
        "commitizen": "./bin/commitizen"
      },

    以上就是JavaScript开发过程中规范commit msg意义详解的详细内容,更多关于开发规范commit msg意义的资料请关注NICE源码其它相关文章!

    免责声明:
    1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

    2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
    如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
    如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

    NICE源码网 JavaScript JavaScript开发过程中规范commit msg意义详解 https://www.niceym.com/20528.html