已卸载的预提交阻止“git commit”(pipenv)

pym*_*mat 6 pre-commit pre-commit-hook python-3.x pipenv pre-commit.com

我最近从我的环境中卸载了预提交。我在 pipelinev 中执行了以下操作:

pipenv --rm
<deleted Pipfile and Pipfile.lock>
pipenv install -r requirements.txt 
Run Code Online (Sandbox Code Playgroud)

我确保预提交模块不再位于requirements.txt 中。当我进行 git 提交时,我得到:

~/my_project/.venv/bin/python: No module named pre_commit
Run Code Online (Sandbox Code Playgroud)

这阻止了我提交,而且我不知道这是从哪里来的,因为未安装预提交。此外,指定的回溯路径指向 python 而不是 python3。我缺少什么?

Ant*_*ile 14

通常,删除安装的钩子的方法pre-commit install是调用pre-commit uninstall-- 不过,如果您已从pre-commit系统中删除,则可以手动删除钩子脚本

您通常可以通过执行以下操作找到它们:

grep pre-commit.com .git/hooks/*
Run Code Online (Sandbox Code Playgroud)

因为该标记已在挂钩文件中列出

从那里你可以删除它们:

grep -l pre-commit.com .git/hooks/* | xargs rm
Run Code Online (Sandbox Code Playgroud)

免责声明:我已预先承诺


And*_*ner 5

pre-commit您的存储库中仍然安装了挂钩git。您可以通过简单地在存储库中删除来删除它们.git/hooks/pre-commit,之后pre-commit提交时将不再调用它们。