规范 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意义的资料请关注Devmax其它相关文章!

JavaScript开发过程中规范commit msg意义详解的更多相关文章

  1. Java Git Commit Message使用规范

    这篇文章主要介绍了Java Git Commit Message使用规范,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下,希望对你的学习有所帮助

  2. React commit源码分析详解

    前两章讲到了,react 在 render 阶段的 completeUnitWork 执行完毕后,就执行 commitRoot 进入到了 commit 阶段,本章将讲解 commit 阶段执行过程源码

  3. JavaScrip String对象的方法

    这篇文章主要为大家介绍了String对象的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

  4. JavaScrip关于创建常量的知识点

    这篇文章主要介绍了JavaScrip创建常量的相关知识点,帮助大家对JS更加深入的学习,参考下吧。

  5. 梳理总结JavaScript的23个String方法

    文章主要介绍了梳理总结JavaScript的23个String方法,JavaScript 中的String类型用于表示文本型的数据。它是由无符号整数值作为元素而组成的集合,更多详细内容需要的朋友可以参考一下

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

    这篇文章主要为大家介绍了JavaScript开发过程中规范commit msg意义的内容详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

  7. JavaScript获取对象key的几种方法和区别

    这篇文章主要介绍了JavaScript获取对象key的几种方法和区别,下面文章更多的相关资料需要的小伙伴可以参考一下,希望对你有所帮助

  8. JavaScript中json使用自己总结

    JavaScrip中json想必大家早已如雷贯耳,下面把自己的使用心得与大家分享下,希望对大家学习json有所帮助

  9. 怎样用Javascript实现策略模式

    这篇文章主要介绍了JavaScript设计模式之策略模式,想学习设计模式的同学,一定要看一下

  10. Javascrip基础之for循环和数组

    这篇文章主要为大家介绍了Javascrip之for循环和数组,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部