阅读 31

自语之利用commitlint& husky约束git commit的提交描述

前言

最近,在公司独立开发某个小服务的时候,发现自己的git commit -m "message"中的提交message太过于凌乱。以至于,连自己都分不清,每次提交message的在描述什么。

所以..这次笔者想写写,如何利用工具进行提交message的格式化。

首先, 我想谈谈commitlint & husky

额…其实笔者也不懂这两个是啥,貌似最先应用于前端的某个开源项目的git message提交规范。

具体参考该博文:http://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html


以下操作基于Mac,所以话不多说,直接上手!
  • 因为组件commitlint & husky, 需要用node的npm来下载, 所以需要下载node

    brew install node

    不过,很多时候在Mbp上使用brew进行安装软件, 会进行长时间brew update, 这时候你可以这样:

    brew search node

    你会发现会出现很多node选项:

    image-20190803122615654.png

    这时候, 说明你是有node的源,可以不用进行brew update, 此时利用配置文件禁止update即可:

    vim ~/.bash_profile
    
    export HOMEBREW_NO_AUTO_UPDATE=true # 禁止自动更新
    复制代码

    如果, 没有node源,那么…你就需要brew update了(运气不好, 长时间等待!)。

  • 当brew install node安装完毕后, 运行npm -v

    image-20190803123110707.png

  • 当安装完npm之后,就可以进行工程项目的初始化了。


项目的git、npm初始化以及commitlint 、husky的配置(注意顺序…..)
  • 第一步:git & npm 初始化目录

    mkdir project_test #开发目录
    cd project_test #进入开发目录
    git init
    npm init
    复制代码
  • 第二步:安装commitlint

    cd project_test #进入开发目录
    npm install -g commitizen #安装commitlint依赖
    commitizen init cz-conventional-changelog --save --save-exact #加载Angular的message风格
    复制代码

    此时, 你会发现project_test目录下多了些文件(README.md笔者自己创建的):

    image-20190803125004091.png

    到了这一步, 每次使用git commit命令的时候, 换成git cz即可提交格式化message。

    但是,如果你在第二步进行git cz 进行提交的话,会发现仅会弹出一个vim文件, 让你自己写提交message。

    没错,格式化信息是自己写的……比如:

    fix(game.java): 修改一个bug
    这是一个锁血的bug修复。
    复制代码

    所以, 我们需要来husky配合使用。

  • 第三步:安装husky

    cd project_test
    npm install --save-dev husky
    复制代码

总结

当完成上面的第三步的时候,就可以使用git cz进行提交了:

当然, 关于feat、fix、style、refactor、perf等的含义, 前言中博客链接已有, 直接看便是。

image-20190803130314752.png

关注下面的标签,发现更多相似文章
评论