安装和初始化husky

npm install -D husky # 安装husky
npx husky install    # 初始化husky
# 新增commit msg钩子
npx husky add .husky/commit-msg "node scripts/verifyCommit.js" 

注意这里在windows中应该这样避免使用空格

npx husky add .husky/commit-msg "node-scripts/verifyCommit.js"

然后再将生成的commit-msg 文件中的 "node-scripts/verifyCommit.js" 改回 "node scripts/verifyCommit.js"

const msg = require('fs')
  .readFileSync('.git/COMMIT_EDITMSG', 'utf-8')
  .trim()
  
const commitRE = /^(revert: )?(feat|fix|docs|dx|style|refactor|perf|test|workflow|build|ci|chore|types|wip|release)(\(.+\))?: .{1,50}/
const mergeRe = /^(Merge pull request|Merge branch)/
if (!commitRE.test(msg)) {
  if(!mergeRe.test(msg)){
    console.log('git commit信息校验不通过')

    console.error(`git commit的信息格式不对, 需要使用 title(scope): desc的格式
      比如 fix: xxbug
      feat(test): add new 
      具体校验逻辑看 scripts/verifyCommit.js
    `)
    process.exit(1)
  }

}else{
  console.log('git commit信息校验通过')
}

git commit 规范

  • feat: 新功能
  • fix: 修改 bug
  • docs: 文档
  • perf: 性能相关
  • refactor: 代码重构(就是不影响使用,内部结构的调整)
  • test: 测试用例
  • style: 样式修改
  • workflow: 工作流
  • build: 项目打包构建相关的配置修改
  • ci: 持续集成相关
  • revert: 恢复上一次提交(回滚)
  • wip: work in progress 工作中 还没完成
  • chore: 其他修改(不在上述类型中的修改)
  • release: 发版
  • deps: 依赖相关的修改
上次更新: 2022/5/6 14:00:36