commitlint+husky规范git commit日志

本文从浅入深的介绍整个commitlint+husky规范commit日志的使用,先介绍如何时候,最后部分讲解原理。

为什么需要规范commit日志?

1、commit message 是程序员开发的日常操作, 但是实际工作中却常常被大家忽略

2、目前commit message 处于五花八门的书写风格,十分不利于阅读和维护

3、优秀的互联网科技公司都有一套代码提交规范,尤其是在一些大型开源项目中,commit message 都是十分一致

规范commit日志的好处

1、团队形成一致的代码提交风格,更好的提高工作效率

2、规范的 commit message 有助于团队其它人员 review, 还可以有效的输出 CHANGELOG, 对项目十分重要

3、成为一名有追求的工程师

安装步骤

1、环境准备:安装node环境,从Node.js官网(https://nodejs.org/en/)下载对应平台的安装程序,终端执行命令 node -v 和 npm -v 可以查看安装的node,npm的版本号,出现如下即成功。


2、commitlint、husky安装

步骤一:创建默认package.json文件、进入项目目录,右键git bash here,运行命令:npm init -y,,此时项目目录就出现了package.json文件。

步骤二:初始化package.json文件内容,运行命令:npm init,按照提示输入内容即可,生成如下内容。

{

  "name": "commitlint-husky",

  "version": "1.0.0",

  "description": "commitlint",

  "main": "index.js",

  "directories": {

    "doc": "doc"

  },

  "scripts": {

    "test": "echo \"Error: no test specified\" && exit 1"

  },

  "repository": {

    "type": "git",

    "url": "http://10.10.8.201/caxs/caxs-artemis.git"

  },

  "keywords": [],

  "author": "geekspring",

  "license": "ISC",

步骤三:安装commitlint插件

命令:

npm install --save-dev @commitlint/cli @commitlint/onfigconventional @commitlint/config-angular

步骤四:安装husky

命令:npm install --save-dev husky

在package.json中添加husky

"husky": {

    "hooks": {

      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"

    }

  }

步骤五:安装changelog插件,方便查看changlog日志文件

命令:npm install --save-dev conventional-changelog-cli

在package.json文件中添加changlog命令,方便查看

"scripts": {

    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"

  }

到此就安装完毕啦。

规则使用

方式一:使用angular团队的规则,在项目目录下创建commitlint.config.js文件,加入如下配置即可:

module.exports = {extends: ['@commitlint/config-angular']};

方式二:自定义规则文件内容,创建commitlint.config.js文件,加入如下配置:


rule配置说明:

rule由name和配置数组组成

1、数组中第一位为level,可选0,1,2,0为disable,1为warning,2为error

2、第二位为应用与否,可选always|never

3、第三位该rule的值

使用效果图

错误示例:



正确示例:




查看changlog日志,根据配置的命令 npm  changelog

原理介绍

commitlin介绍

目前国内外规范使用较多的是 Angular 团队的规范, 目前规范参考Angular 团队比较多。直接看如下参考资料很详细。

参考资料:

https://blog.csdn.net/y550918116j/article/details/81214746

https://www.npmjs.com/package/@commitlint/config-angular

https://blog.csdn.net/peterxiaoq/article/details/76144288

husky介绍:

      husky 是一个为 git 客户端增加 hook 的工具。

      在.git/ 目录下增加husky钩子,在 pre-commit 阶段自动执行保证每一个 commit 的commit message的正确性

追根溯源:

git对提交的内容会校验,校验主要分为:

    1、 服务端pre-receive钩子

    2、客户端的pre-commit钩子

    客户端的pre-commit钩子验证提高服务端的钩子验证效率,可以理解为:

服务端的pre-receive钩子:后端验证

客户端的pre-commit钩子:前端验证

前端验证的效率高于,将所有的验证都放在后端,故此,在pre-commit处增加了husky钩子

钩子判断坏的commit 会被拒绝在本地,本地只能将钩子可以通过的代码提交到中心仓库。








最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 原文链接 前言 在git的使用中,一种最佳实践是使用格式化的commit信息,这样方便自动化工具进行处理,可以快速...
    冯宇Ops阅读 8,527评论 2 34
  • 前言 之前我写过一篇有关于git提交的文档《用gitmoji来提交你的git commit吧》,然而在实际上应用并...
    mytac阅读 2,408评论 2 3
  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 ...
    ihoey阅读 6,243评论 2 36
  • 一、前言 现在最流行的版本管理工具非git莫属,而良好的代码规范有助于项目的维护,为了防止一些不规范的代码 co...
    前端妹子ice阅读 52,409评论 2 17
  • 又是记录水彩学习作业,话说这幅画还未画完,临摹的过程也是错误不断,线稿过程慢,上色过程更慢,调色过程也是调的不像,...
    若鱼爱画画阅读 327评论 0 4