husky引发git commit报错的解决方案

打印 上一主题 下一主题

主题 895|帖子 895|积分 2685

在git commit的时候,有可能会遇到这样的报错,husky - pre-commit hook exited with code 1 (error)

出现这个题目的原因主要是,假如项目中采用 husky和lint-staged结合进行代码校验,那么,只要项目代码中有不规范的地方,git commit就会自动停止。
在项目开发中肯定不可能时时候刻包管代码写的美满,面对这个题目,可以采用两个方案,跳过git commit检查。
方案一:--no-verify

  1. git commit --no-verify -m "git commit info"
复制代码
通过--no-verify命令,忽略掉不合规范的地方,强制上传。
这种方法很好,但是有个题目,假如只想上传部分文件,还要先通过git add和git reset来忽略一部分内容,例子如下:
  1. git add . #将所有文件暂存
  2. git reset ./vite.config.ts HEAD #将不需要上传的文件恢复
  3. git commit --no-verify -m "git commit info"
复制代码
方案二:--skip-worktree

因为我不停使用 tortoisegit进行git版本管理,不采用命令行的方式,不知道怎么在tortoisegit上输入--no-verify,所以找到了另一种方法,就是直接删除.husky目次,同时删除package.json中与husky相关的内容,去掉校验功能。
由于去掉之后会在面板上显示变更,所以要在删除文件之前,采用--skip-worktree告诉git忽略这个文件。详细代码如下。
  1. git update-index --skip-worktree .husky/*#如果该语句不生效,可以替换成.husky/commit.sh这样的单个文件一一忽略
  2. git update-index --skip-worktree package.json
复制代码
这样一来,之后每次使用tortoisegit就可以直接commit了。
不过以上有个题目,假如后续项目中远程有人修改了package.json文件,pull时会在当地显示辩论,要先用--no-skip-worktree规复文件,进行修改,再重新执行上述操作。
相比较之下,照旧--no-verify的方案更方便。

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

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

玛卡巴卡的卡巴卡玛

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表