You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

git commit时pre-commit钩子未正常运行的问题咨询

问题排查:pre-commit钩子在git commit时不触发

以下是几个常见原因及对应的解决步骤:

1. 未完成pre-commit钩子的Git注册

你通过Poetry安装了pre-commit,但还需要将钩子绑定到本地Git仓库的hooks目录。执行以下命令完成注册:

poetry run pre-commit install

该命令会在.git/hooks/目录生成pre-commit脚本,Git在执行commit操作时会自动调用这个脚本触发钩子。

2. 检查Git钩子文件的状态

  • 确认.git/hooks/pre-commit文件存在且具备可执行权限:
    ls -la .git/hooks/
    
  • 若文件存在但无执行权限,添加权限:
    chmod +x .git/hooks/pre-commit
    
  • 若文件不存在,重新执行poetry run pre-commit install。

3. 验证提交文件是否符合钩子触发条件

  • 你的pre-commit配置仅启用了ruff和ruff-format钩子,这两个钩子默认只处理.py文件,提交非Python文件时钩子不会运行。
  • 检查.ruff.toml中的exclude配置,确认提交的文件或所在目录未被排除(比如venv/等目录会被自动跳过,但这类文件通常不会被提交)。

4. 确保使用正确的虚拟环境

pre-commit通过Poetry安装在虚拟环境中,需确保commit操作处于该环境内:

  • 先激活虚拟环境:
    poetry shell
    
    再执行git commit命令。

5. 查看调试日志定位问题

若以上步骤无效,开启pre-commit调试模式查看详细日志:

PRE_COMMIT_DEBUG=1 git commit

日志会显示钩子是否被调用、文件是否被过滤等信息,帮助定位具体问题。


内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 01:41:05