为何pre-commit run --all-files -v未检测Python文件?
问题
我的.pre-commit-config.yaml配置如下:
repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: fix-encoding-pragma - id: check-ast
当前目录结构:
$ tree . ├── LICENSE ├── README.md └── main.py
执行pre-commit run --all-files -v后输出:
$ pre-commit run --all-files -v Fix python encoding pragma...........................(no files to check)Skipped - hook id: fix-encoding-pragma Check python ast.....................................(no files to check)Skipped - hook id: check-ast
首次使用pre-commit,不清楚为什么main.py没被检测到。
解决方法
先初始化钩子环境
首次使用需先拉取配置中指定的钩子,执行命令:pre-commit install-hooks完成后重新运行检测命令。
明确指定钩子的匹配文件
部分旧版本钩子的默认匹配规则可能未覆盖你的main.py,可在配置中为钩子添加files字段指定Python文件:repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: fix-encoding-pragma files: \.py$ - id: check-ast files: \.py$保存配置后重新执行检测即可。
升级钩子版本
你使用的pre-commit-hooksv3.2.0版本较老旧,可能和当前pre-commit主程序存在兼容性问题,建议升级到稳定新版本(比如v4.6.0),修改配置中的rev值后,重新执行pre-commit install-hooks和检测命令。
内容的提问来源于stack exchange,提问作者WebOrCode
相关产品推荐
相关产品推荐

