git husky>预提交挂钩失败(添加--no-verify以绕过)

62o28rlo  于 2022-12-21  发布在  Git
关注(0)|答案(6)|浏览(445)

当我给予git commit时,突然收到“husky〉pre-commit钩子失败(add --no-verify to bypass)”错误消息。

我也试过git clean命令。有人遇到过类似的问题吗?

aurhwmvo

aurhwmvo1#

Husky可以防止你从坏git commitgit push和更多。如果你得到这个错误检查你的***代码语法***。如果你得到这个错误,即使你的代码是有效的,请使用下面的解决方案。

#溶液1:

删除.git/hooks文件夹,然后执行npm install重新安装husky。husky生成的文件和.git/hooks/ files可能会发生冲突。

#溶液2:

这是一个临时/快速的解决方案。

git commit -m "message" --no-verify
htzpubme

htzpubme2#

@Elio的注解是一个更好的解决方案,因为--no-verify跳过了应该运行的任何脚本。
我在这里假设如果剧本在那里是有原因的...

因此:

你也可以删除.git/hook文件夹,然后卸载并重新安装husky。husky生成的文件和.git/hook/ files有一些冲突。这对我很有效
在我的情况下,卸载/重新安装是没有必要的。

lyr7nygr

lyr7nygr3#

我很惊讶上面的答案建议忽略钩子的验证,如果你有Husky钩子,你不能忽略它们。
在我的例子中,当一些依赖项被更新后,我就开始获取husky > pre-commit hook failed (add --no-verify to bypass)。这个问题通过在husky文件中将Husky的pre-commit linting命令改为npm run lint(通常这个命令在大多数情况下都能正常工作)来解决:

// .huskyrc.json
{
  "hooks": {
      "pre-commit": "npm run lint"
  }
}

注意:如果package.json中声明了lint脚本,则解决方案有效;就我而言,我有:

// package.json
{
  "scripts": {
    "lint": "tsc && eslint \"src/**/*.{js,ts,tsx}\" --quiet --fix"
  }
}
b4qexyjb

b4qexyjb4#

我找到两个这样的临时解决办法

git config --unset core.hooksPath

git commit -m "message" --no-verify
4xy9mtcn

4xy9mtcn5#

当我提交一个electron.js项目的时候,我也遇到了同样烦人的错误信息。添加--no-verify选项可以工作,但是每次提交的时候我都要这么做,这也有点烦人。
然后我发现了一些与预提交在package.json文件:

{
  "scripts": {
    ...
    "precommit": "lint-staged",
    ...
  }
}

只要删除上面的行就解决了我的问题。

1hdlvixo

1hdlvixo6#

对我来说我必须补充

"lint-staged": {
  "**/*": "prettier --write --ignore-unknown"
},

到我的package.json

相关问题