如何解决git commit报错:type必须为指定的[build,core,ci等]类型值?
问题原因
这个报错是项目配置了commitlint提交规范校验工具,强制要求提交信息符合约定式提交格式,你遇到的"偶发"本质不是随机问题:重新克隆项目后如果没有执行依赖安装命令,项目配套的husky git钩子不会被注册到本地,校验不会触发;等你安装完项目依赖后husky钩子自动激活,提交就会触发校验,所以会反复复现。
彻底解决方案
方案1:遵循项目提交规范(推荐)
提交信息严格按照type: 提交描述的格式编写,其中type必须从报错给出的可选范围中选择:
- build:影响构建系统、外部依赖的修改
- core:项目核心逻辑修改
- ci:CI/CD流程相关修改
- docs:文档内容修改
- feat:新增功能
- fix:bug修复
- perf:性能优化
- revert:回滚历史提交
- style:不影响逻辑的代码格式调整(空格、分号、格式对齐等)
- test:测试用例新增、修改
你示例中的测试提交修改为如下命令即可通过校验:
git commit -am "feat: test commit"
方案2:关闭提交校验(不需要规范的场景使用)
直接移除项目内的校验配置即可永久关闭,操作步骤:
- 删除项目根目录下的
.husky文件夹 - 删除项目根目录下的commitlint配置文件,通常命名为
.commitlintrc、.commitlintrc.js、commitlint.config.js - 把package.json中和commitlint、husky相关的依赖项删除即可
如果仅需要单次跳过校验,commit时添加--no-verify参数即可:
git commit -am "test commit" --no-verify
内容的提问来源于stack exchange,提问作者VinayBS
相关产品推荐
相关产品推荐

