如何安装husky_项目中Git message如何配置?

Message类型选择feat: 新增feature

fix: 修复bug

docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等

style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑

refactor: 代码重构,没有加新功能或者修复bug

perf: 优化相关,比如提升性能、体验

test: 测试用例,包括单元测试、集成测试等

chore: 改变构建流程、或者增加依赖库、工具等

revert: 回滚到上一个版本

工具

可以使用典型的git工作流程或通过使用CLI向导commitizen

cz-conventional-changelog

commitlint

husky

commitizen && cz-conventional-changelog

我们使用 commitizen 和 cz-lerna-changelog 来规范提交,为后面自动生成日志作好准备.

所需要的依赖包:

# 安装 commitizen

npm i -D commitizen

# 日志管理

npm i -D cz-conventional-changelog

安装完成后, 在package.json中增加config字段,把cz-conventional-changelog配置给commitizen。同时因为commitizen不是全局安全的,所以需要添加 scripts 脚本来执行 git-cz

{

"name": "root",

"private": true,

"scripts": {

"c": "git-cz"

},

"config": {

"commitizen": {

"path": "./node_modules/cz-conventional-changelog"

}

},

"devDependencies": {

"commitizen": "^4.0.3",

"cz-conventional-changelog": "^3.1.0"

}

}

之后在常规的开发中就可以使用 npm run c 来根据提示一步一步输入,来完成代码的提交。

生成CHANGELOGconventional-changelog -p angular -i CHANGELOG.md -s (该命令不会覆盖以前的 Change log,只会 在CHANGELOG.md的头部加上自从上次发布以来的变动)

conventional-changelog -p angular -i CHANGELOG.md -s -r 0 (生成所有发布的 Change log

或者方便使用直接写入package.json的scripts字段:

{ "scripts": { "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0" } }

让后直接运行npm run changelog

commitlint && husky

上面使用的commitizen来规范提交,但是需要开发者自觉使用npm run c,万一忘记使用了,直接使用了git commit提交怎么办呢?此时我们就需要对提交的信息进行校验,如果不合法就不让提交; 校验的工作由 commitlint 来完成,校验的时机则由 husky来指定。husky 继承了 Git 下所有的钩子,在触发钩子的时候,husky 可以阻止不合法的 commit,push 等等。

# 安装 commitlint 以及要遵守的规范

npm i -D @commitlint/cli @commitlint/config-conventional

在根目录下创建commitlint.config.js指定commitlint的相关规范。

module.exports = {

extends: ['@commitlint/config-conventional'],

,

rules: {

// fix `WIP`

'type-case': [2, 'always', ['lower-case', 'upper-case']],

'type-enum': [

2,

'always',

[

'feat',

'fix',

'docs',

'style',

'refactor',

'perf',

'test',

'chore',

'revert',

'WIP'

]

]

}

}

安装husky

npm i -D husky

在package.json中增加配置

"husky": {

"hooks": {

"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"

}

}

commit-msg是git提交时校验提交信息的钩子,当触发时便会使用 commitlit 来校验。安装配置完成后,想通过 git commit 或者其它第三方工具提交时,只要提交信息不符合规范就无法提交。日常记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值