我尝试提交时收到此错误。
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
答案 0 :(得分:30)
预提交挂钩首先运行,它可用于执行某些检查,测试和条件。在这种情况下,显然,你没有它,这就是为什么它在抱怨。
转到.git/hooks
目录并删除pre-commit
文件,因为它试图引用node_modules/pre-commit/hook
。它应该解决它。
其他选项是使用选项--no-verify
附加您的提交,它将在不进行检查的情况下进行提交。
答案 1 :(得分:5)
您应该删除node_modules
文件夹并再次安装npm install
或yarn install
。在它之后,你可能解决了这个问题。
答案 2 :(得分:1)
在 macOS 上工作,我的问题是 Python3 最初是通过 Homebrew 安装的,在我通过 brew update && brew upgrade
升级 Python3 后,我遇到了同样的错误。
为了解决这个问题,我需要更新 #!
文件中的 shebang (.git/hooks/pre-commit
) 行指向的目录中的符号链接。
以下是我在我的环境中修复此问题的方法:
看看.git/hooks/pre-commit
的内容:
cat .git/hooks/pre-commit
前几行应该类似于:
#!/usr/local/opt/pre-commit/libexec/bin/python3
# File generated by pre-commit: https://pre-commit.com
# ID: 0123456789abcdef0123456789abcdef
import os
import sys
记下 shebang 行中 python3
可执行文件的路径:
/usr/local/opt/pre-commit/libexec/bin/
cd
进入该目录。
cd /usr/local/opt/pre-commit/libexec/bin/
看看 Python 符号链接:
ls -l | grep python
您会看到一些可能已损坏的符号链接:
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
快速说明:如果出现问题或我的答案不是解决方案,您可能需要先通过运行以下命令来备份这些符号链接:
mv python python.bak
mv python3.9 python3.9.bak
mv python3 python3.bak
使用 ln -s [PATH] [LINK]
更新符号链接,其中 [PATH]
是 Homebrew 更新的 Python3 可执行文件的位置,[LINK]
是 python
,{{1} },和python3.9
:
python3
ln -s /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9 python
ln -s /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9 python3.9
完成后,再次列出您的 Python 符号链接。
ln -s /usr/local/Cellar/python@3.9/3.9.4/Frameworks/Python.framework/Versions/3.9/bin/python3.9 python3
您应该会看到更新后的符号链接,ls -l | grep python
现在应该可以工作了。
git commit
答案 3 :(得分:0)
如果脚本文件确实存在,则原因可能是脚本的第一行应该是
2020-08-13 23:59:59.999
否则,您将收到相同的错误。
答案 4 :(得分:0)
从found_tuples = [('A','C','B')]
内的钩子中删除pre-commit
对我有用
答案 5 :(得分:-1)
INGW64 ~/code/ingestor-gdelt (test-build)
$ git commit -m "your comment"
.git/hooks/pre-commit: line 9: py: command not found
.git/hooks/pre-commit: line 10: py: command not found
git commit --no-verify -m "your comment"
这个命令解决了我的问题!!
答案 6 :(得分:-3)
只要确保在 .git 中有 hooks 文件夹即可。如果不做一个。