IT评测·应用市场-qidao123.com

标题: 21vue3实战-----git husky和git commit规范 [打印本页]

作者: 王國慶    时间: 2025-3-7 14:39
标题: 21vue3实战-----git husky和git commit规范
之前在https://blog.csdn.net/fageaaa/article/details/145474065文章中已经讲了在vue项目中怎么配置代码规范,下面将专门讲述git husky和git commit规范。
1.husky工具

固然我们已经要求项目使用eslint了,但是不能保证组员提交代码之前都将eslint中的题目解决掉了。
1.1目标


1.2如何做到这一点?


1.3步调

在安装husky工具之前得确定电脑安装了git并且项目中有git仓库:

假如没有git仓库,须要使用以下命令来初始化主动创建一个.git文件夹
  1. git init
复制代码
之后我们可以使用主动配置命令:
  1. npx husky-init && npm install
复制代码
安装后package.json中会有相干依赖:

安装好之后项目会多一个.husky文件夹:

进入.husky/pre-commit文件夹:

发现里面实行的是npm test。把这个改为:
  1. npm run lint
复制代码
这样子体系会主动去package.json中找lint配置:
这个时间我们实行git commit的时间就会主动对代码进行lint校验。
2.git commit规范

2.1使用Commitizen主动生成规范格式供选择

通常我们的git commit会按照统一的风格来提交,这样可以快速定位每次提交的内容,方便之后对版本进行控制。
但是假如每次手动来编写这些是比较贫困的事情,我们可以使用一个工具:Commitizen。Commitizen 是一个帮助我们编写规范 commit message 的工具。
安装Commitizen:
  1. npm install commitizen -D
复制代码
安装cz-conventional-changelog,并且初始化cz-conventional-changelog:
  1. npx commitizen init cz-conventional-changelog --save-dev --save-exact
复制代码
安装好cz-conventional-changelog后,会主动在package.json中追加一个配置:

这个时间我们提交代码须要使用 npx cz。
之前我们git commit时间须要自己留意一些规范,会像下面这样子提交:

但安装了commitizen之后,就不用这样子了。
实行命令git add .之后,实行npx cz,这时间会生成交互式命令供选择:
这时查看提交日志:git log:

上面说明提交已经乐成。
我们在package.json中进行可以进行配置:

这样子下次我们可以实行下面命令来提交:
  1. npm run commit
复制代码
2.2代码提交风格

如2.1中使用Commitizen主动生成了以下格式:

下面具体讲讲git commit中代码提交的规范。

Type作用feat新增特性 (feature)fix修复 Bug(bug fix)docs修改文档 (documentation)style代码格式修改(white-space, formatting, missing semi colons, etc)refactor代码重构(refactor)perf改善性能(A code change that improves performance)test测试(when adding missing tests)build变更项目构建或外部依赖(例如 scopes: webpack、gulp、npm 等)ci更改持续集成软件的配置文件和 package 中的 scripts 命令,例如 scopes: Travis, Circle 等chore变更构建流程或辅助工具(比如更改测试环境)revert代码回退
2.3代码提交验证

假如我们按照cz来规范了提交风格,但是依然有同事通过 git commit 按照不规范的格式提交应该怎么办呢?
我们可以通过commitlint来限制提交。
安装 @commitlint/config-conventional 和 @commitlint/cli:
  1. npm i @commitlint/config-conventional @commitlint/cli -D
复制代码
在根目录创建commitlint.config.js文件,配置commitlint:
  1. module.exports = {
  2.   extends: ['@commitlint/config-conventional']
  3. }
复制代码
可能会出现以下报错:

那就在.eslintrc.cjs文件中追加配置:

就可以解决该题目。
使用husky生成commit-msg文件,验证提交信息:
  1. npx husky add .husky/commit-msg "npx --no-install commitlint --edit $1"
复制代码
生成了commit-msg文件:


配置好之后,使用npx cz可以提交代码,使用git commit按照不规范的格式提交就不会见效。
不按规范提交代码:

按规范提交代码:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4