美文网首页
优化前端工作流:一、使用husky对commit日志校验

优化前端工作流:一、使用husky对commit日志校验

作者: 高级程序狗 | 来源:发表于2020-05-26 11:20 被阅读0次

Git Hooks

在了解husky之前,我们需要先了解一下Git Hooks。Git Hooks是git提供的一些回调函数,在对应的git阶段,执行配置的脚本。


《progit-Git钩子》

工作流钩子主要为以下4个,执行顺序pre-commit > prepare-commit-msg > commit-msg > post-commit

《progit-提交工作流钩子》

ps:其中pre-commit prepare-commit-msg是在提交信息填写之前触发,而post-commit是提交之后触发,所以对commit日志校验是通过commit-msg实现。commit-msg脚本如果以非0值退出,Git将放弃提交。

husky的原理是在.git/hooks/目录下各个钩子文件中添加以下脚本,并读取package.json中的配置,放在对应的钩子中执行:

.git/hooks/commit-msg

husky校验commit日志方法

npm安装完husky后,我们通过在package.json中配置,使git在commit-msg钩子后执行bin/check-commit-msg.js

  "husky": {
    "hooks": {
      "commit-msg": "node bin/check-commit-msg.js",
    }
  }

bin/check-commit-msg.js内容如下,非0值退出,Git将放弃提交:

const fs = require('fs')
const path = require('path')
const cwd = process.cwd()
const message = fs.readFileSync(path.join(cwd, '.git/COMMIT_EDITMSG'), 'utf-8')

var regex = /自定义校验规则/;
if (!regex.test(message)) {
  process.exitCode = 1;
  console.error('\033[33m Your message is not formatted correctly! \033[0m');
}

相关文章

网友评论

      本文标题:优化前端工作流:一、使用husky对commit日志校验

      本文链接:https://www.haomeiwen.com/subject/xujmahtx.html