Git提交规范保护

Git 规范

Git 作为现在最流行的分布式管理工具,基本上是每个团队的必备。

Git Commit格式校验

  • 准备commitlint/cli用于格式校验
  • 准备husky用于git提交代码时触发校验

husky

husky 是创建 git 客户端 hooks 的神器。

目前最新版本是 7.*,文档在这里(opens new window)

初始化 husky 只需要三步。首先要安装:

1
$ npm i husky --save-dev

执行下面的脚本,会初始化一个 .husky 目录:

1
$ npx husky install

初始化后,就可以添加 hook 了。

添加一个 commit-msg 钩子,并指定一个默认 shell:

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

现在在执行 git commit 之前,就会执行上面指定的 shell。

commitlint

上面的 shell 里有一个 commitlint 命令,其实它是另一个工具,用来校验 commit 提交信息,这是 husky + commitlint 这对黄金搭档的主要功能。

commitlint 的文档在这里(opens new window)

为了直观的看出 commit 的更新内容,开发者社区诞生了一种规范,将 commit 按照功能划分,加一些固定前缀,比如 fix:feat:,用来标记这个 commit 主要做了什么事情。

commitlint 命令就是校验 commit 信息是否符合上述规范,不符合,则会配合 husky 阻止提交。

首先安装 commitlint:

1
$ npm i @commitlint/{config-conventional,cli} --save-dev

然后创建配置文件:

1
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

这样就好了,然后我们随便改一处代码,试试效果:

1
2
$ git add .
$ git commit -m 'test'

因为 “test” 不符合 commit 规范,所以被阻止了,执行结果如下:

WX20210922

我们再试一下符合规范的提交格式:

1
$ git commit -m 'fix: 修复**功能'

这样就可以通过了!

commit前缀

目前主流的前缀包括以下部分:

  • build:表示构建,发布版本可用这个
  • ci:更新 CI/CD 等自动化配置
  • chore:杂项,其他更改
  • docs:更新文档
  • feat:常用,表示新增功能
  • fix:常用:表示修复 bug
  • perf:性能优化
  • refactor:重构
  • revert:代码回滚
  • style:样式更改
  • test:单元测试更改
作者

hujinbin

发布于

2021-11-24

更新于

2022-01-01

许可协议

评论

:D 一言句子获取中...