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

husky > pre-commit hook failed (add --no-verify to bypass)

当我给 git commit .

我不知道我做错了什么。我也试过 git clean 命令。有人遇到过类似的问题吗?

哈士奇可以让您远离不良 git commitgit push 等等。如果您收到此错误,请检查您的 代码语法 ,以防您收到此错误,即使您的代码有效。请使用以下解决方案。

#解决方案一:

删除 .git/hook 文件夹,然后执行 npm install 重新安装 husky。有可能与 husky-generated 文件和 .git/hook/ 文件发生冲突。

#解决方案 2:

这是一个temporary/quick解决方案

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

@Elio 的评论是一个更受欢迎的解决方案,因为 --no-verify 跳过了任何应该 运行.

的脚本

我假设如果脚本在那里,那是有原因的...

因此:

You can also delete the .git/hook folder and then uninstall and reinstall husky. There are some conflicts with husky generated files and .git/hook/ files. That worked for me

在我的例子中,uninstall/re-install 不是必需的。

令我惊讶的是,最上面的答案只是建议忽略 hooks 的验证。如果你有哈士奇钩子,你不能忽视它们。

在我的例子中,一旦更新了一些依赖项,我就开始获得 husky > pre-commit hook failed (add --no-verify to bypass)。通过在 husky 文件中将 Husky 的预提交 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"
  }
}

我找到了两个类似的临时解决方案

git config --unset core.hooksPath  

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

我在提交到 electron.js 项目时遇到了同样烦人的错误消息。添加 --no-verify 选项有效,但每次提交时我都必须这样做也有点烦人。

然后我在package.json文件中找到了与precommit相关的东西:

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

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