commit规范

85 阅读1分钟

一、type 类型概览

描述
feat新增一个功能
fix修复一个Bug
docs文档变更
style代码格式(不影响功能,例如空格、分号等格式修正)
refactor代码重构
perf改善性能
test测试
build变更项目构建或外部依赖(例如scopes: webpack、gulp、npm等)
ci更改持续集成软件的配置文件和package中的scripts命令,例如scopes: Travis, Circle等
chore变更构建流程或辅助工具
revert代码回退

标准格式:

<类型>[可选 范围]: <描述>  
  
[可选 正文]  
  
[可选 脚注]  

fix --- PATCH feat --- MINOR BREAKING CHANGE --- MAJOR 表示方法:<类型>(范围) 后面有一个 !

二、 如何遵守规范

Commitizen

三、husky 最后的帮手

可以在 Git hooks 中使用的 npm 包,它可以帮助你在特定的 Git 事件发生时执行命令,比如在Git的一些关键操作(例如提交、推送、合并等)前或后,执行一些脚本或命令,比如代码格式化、自动化测试、打包发布等。

3.1 安装

pnpm install husky --save-dev

3.2 在package.json中定义需要执行的Git hooks和对应的脚本

"husky": {  
    "hooks": {  
      "pre-commit""npm run lint && npm run test"  // 每次在执行`git commit`命令时,都会自动执行npm中定义的`lint``test`命令。
    }  
}

还有一些别的命令: pre-push、post-merge、post-checkout

当然 除了在pageage.json中设置之外,还可以使用

npx husky add .husky/pre-commit来生成一个 hook 的文件

四、使用lint-staged, 对暂存区代码进行eslint校验和prettier格式化

husky 是代码提交的时候,校验代码, 而在提交前进行校验就需要用到 lint-staged,

npm i lint-staged --save-dev

// package.json文件中设置
"lint-staged": {
    " **/*.scss": "stylelint --syntax scss",  
    "** / *.{js,jsx, tsx,ts }": "npm run lint-staged:js",  
    "**/* .{js,jsx,tsx,ts,less,scss,md,json}": [    "prettier --write" ] 
}

附: mp.weixin.qq.com/s/SZncJ1nPa…