GitHub 桌面 Husky 预提交钩子没有

Phi*_*cks 9 github-desktop husky lint-staged git-husky

我按照许多其他项目安装了(在 Mac OS11 上)husky@4lint-staged终端命令流程git add .git commit -m 'something'流程工作正常:Husky 的预提交挂钩和lint-staged命令已成功获取。然而,Github Desktop 预提交挂钩似乎没有表现。

我尝试查看该文件.git/hooks/pre-commit,它就在那里:

#!/bin/sh
# husky

# Created by Husky v4.3.8 (https://github.com/typicode/husky#readme)
#   At: 3/7/2021, 12:09:26 PM
#   From: /Users/admin/devProj/prject/node_modules/husky (https://github.com/typicode/husky#readme)

. "$(dirname "$0")/husky.sh"
Run Code Online (Sandbox Code Playgroud)

命令:

...
        "husky": "^4.3.8",
        "lint-staged": "^10.5.4",
...
"husky": {
        "hooks": {
            "pre-commit": "tsc --noEmit && lint-staged"
        }
    },
    "lint-staged": {
        "**/*.(js|jsx|ts|tsx)": [
            "npm run lint:fix",
            "prettier --write"
        ]
    }
Run Code Online (Sandbox Code Playgroud)

GitHub Desktop 找不到此内容的任何其他原因吗?

小智 2

我建议升级到 Husky 版本 6,因为这对我来说很有效,尽管它需要一些特定于 Windows 的额外步骤。

-- 背景 我现在正在使用最新的软件包解决同样的问题......

    "husky": "^6.0.0",
    "lint-staged": "^10.5.3",
Run Code Online (Sandbox Code Playgroud)

就我而言,我认为修复了我的配置中的错误 - 但实际上它刚刚完全禁用了 Husky,因为有一些复杂的 v4 -> v6 迁移说明:https: //typicode.github.io/husky/#/? id=从 v4 迁移到 v6

但是,我认为您遇到了与我相同的问题,即使我在 Windows 上 - GitHub Desktop 抛出错误,可能是因为“找不到命令”或类似的原因。

就我而言,husky 在命令行(Windows 下为 git)上工作,但不在 GitHub Desktop 上工作。

一度这是 GitHub Desktop 中的一个已知错误,但看起来几年前就已修复。

Husky 文档的一部分解决了这个特定错误: https: //typicode.github.io/husky/#/ ?id=command-not-found

不幸的是,即使我完成了 v6 的迁移说明,我仍然遇到同样的问题,并且归结为使用 nvm (在我的例子中, nvm for Windows,它不太健壮,因为它甚至不支持.nvmrc文件)。

我完全卸载了nvm并重新安装了最新的稳定节点(15.14.0)和npm(7.10.0)。但最终归结为将“C:\Program Files\Git\bin”添加到 PATH,最终与 husky v6 结合使预提交 git hooks 工作。

  • 不知道为什么投反对票。这个问题简直要了我的命,按照德里克的建议添加“C:\Program Files\Git\bin”也为我解决了这个问题。可惜我只能投一票。 (2认同)