pre-commit/hook:没有这样的文件或目录

Jit*_*yas 23 git pre-commit pre-commit-hook

我尝试提交时收到此错误.

OS - 最新的OSX

Git版本 - git版本2.11.0(Apple Git-81)

.git/hooks/pre-commit: line 2: ./node_modules/pre-commit/hook: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Mut*_*ant 41

当您尝试提交更改时,pre-commit hook首先运行,它可用于执行某些检查,测试和条件.在这种情况下,显然,你没有它,这就是为什么它在抱怨.

转到.git/hooks目录并删除pre-commit文件,因为它试图引用node_modules/pre-commit/hook.它应该解决它.

其他选项是使用选项附加您的提交:--no-verify它将在不进行检查的情况下进行提交.

  • 我遇到了同样的问题,但通过删除“预提交”文件并没有解决它。比我尝试在终端中通过命令提交并最后添加 `--no-verify` 命令,所以我的命令是 `git commit -m "message" --no-verify`。它对我有用。 (2认同)

Roh*_*pta 10

如果脚本文件确实存在,那么原因可能是脚本的第一行应该类似于:

#!/bin/sh

否则你会得到同样的错误。

任何文件都可以工作——例如,/bin/bash——/usr/local/bin/python3只要它存在并且可执行。


Ric*_*oso 9

根据@Mutant 提示,对我来说简单的答案是:

rm .git/hooks/pre-commit
Run Code Online (Sandbox Code Playgroud)


小智 5

您应该删除node_modules文件夹,然后再次运行npm install或安装yarn install。之后,您可能会解决问题。


L. *_*May 5

在 macOS 上工作,我的问题是 Python3 最初是通过 Homebrew 安装的,在我通过 升级 Python3 后brew update && brew upgrade,我得到了同样的错误。

为了解决这个问题,我需要更新文件中 shebang ( #!) 行.git/hooks/pre-commit指向的目录中的符号链接。

以下是我在我的环境中解决此问题的方法:

  1. 看看下面的内容.git/hooks/pre-commit

    cat .git/hooks/pre-commit
    
    Run Code Online (Sandbox Code Playgroud)

    前几行应该类似于:

    #!/usr/local/opt/pre-commit/libexec/bin/python3
    # File generated by pre-commit: https://pre-commit.com
    # ID: 0123456789abcdef0123456789abcdef
    import os
    import sys
    
    Run Code Online (Sandbox Code Playgroud)

    python3记下shebang 行中可执行文件的路径:

    /usr/local/opt/pre-commit/libexec/bin/
    
    Run Code Online (Sandbox Code Playgroud)
  2. cd进入该目录。

    #!/usr/local/opt/pre-commit/libexec/bin/python3
    # File generated by pre-commit: https://pre-commit.com
    # ID: 0123456789abcdef0123456789abcdef
    import os
    import sys
    
    Run Code Online (Sandbox Code Playgroud)
  3. 看一下 Python 符号链接:

    /usr/local/opt/pre-commit/libexec/bin/
    
    Run Code Online (Sandbox Code Playgroud)

    您会看到一些可能已损坏的符号链接:

    lrwxr-xr-x  1 user  group    91 Apr  5 13:33 python -> /usr/local/Cellar/python@3.9/3.9.2_4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    lrwxr-xr-x  1 user  group    91 Apr  5 13:33 python3.9 -> /usr/local/Cellar/python@3.9/3.9.2_4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    lrwxr-xr-x  1 user  group    91 Apr  5 13:33 python3 -> /usr/local/Cellar/python@3.9/3.9.2_4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    
    Run Code Online (Sandbox Code Playgroud)

    快速说明:如果出现问题或我的答案不是解决方案,您可能需要首先运行以下命令来备份这些符号链接:

    cd /usr/local/opt/pre-commit/libexec/bin/
    
    Run Code Online (Sandbox Code Playgroud)
    ls -l | grep python
    
    Run Code Online (Sandbox Code Playgroud)
    lrwxr-xr-x  1 user  group    91 Apr  5 13:33 python -> /usr/local/Cellar/python@3.9/3.9.2_4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    lrwxr-xr-x  1 user  group    91 Apr  5 13:33 python3.9 -> /usr/local/Cellar/python@3.9/3.9.2_4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    lrwxr-xr-x  1 user  group    91 Apr  5 13:33 python3 -> /usr/local/Cellar/python@3.9/3.9.2_4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用 更新符号链接ln -s [PATH] [LINK],其中[PATH]是 Homebrew 更新的 Python3 可执行文件的位置,是[LINK]、和:pythonpython3.9python3

    mv python python.bak
    
    Run Code Online (Sandbox Code Playgroud)
    mv python3.9 python3.9.bak
    
    Run Code Online (Sandbox Code Playgroud)
    mv python3 python3.bak
    
    Run Code Online (Sandbox Code Playgroud)
  5. 完成后,再次列出您的 Python 符号链接。

    ln -s /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9 python
    
    Run Code Online (Sandbox Code Playgroud)

    您应该看到更新的符号链接,并且git commit现在应该可以工作。

    lrwxr-xr-x  1 user  group    89 Apr  6 13:58 python -> /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    lrwxr-xr-x  1 user  group    89 Apr  6 13:58 python3 -> /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    lrwxr-xr-x  1 user  group    89 Apr  6 13:58 python3.9 -> /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9
    
    Run Code Online (Sandbox Code Playgroud)