如何在pre-commit分析中排除多个文件夹及文件模式?
解决pre-commit多路径/文件排除问题
pre-commit的exclude字段接受正则表达式字符串,而非数组,你可以用正则的|(逻辑或)来组合多个要排除的路径/文件模式。
针对你的项目结构,要排除src/poc/、根目录tests/文件夹和根目录conftest.py文件,配置如下:
exclude: ^(src/poc/|tests/|conftest\.py)$ repos: - repo: https://github.com/pycqa/isort rev: 5.11.4 hooks: - id: isort # 其他hooks...
正则模式说明:
^:匹配路径的开头,避免误匹配路径中间包含关键字的文件(比如mypoc.py不会被误排除)|:分隔多个独立的排除规则,满足任意一个就会被排除conftest\.py:用\.转义点号,因为正则里.代表任意字符,转义后才会匹配实际的文件名- 路径末尾的
/:明确匹配文件夹,避免和同名文件混淆
如果需要添加更多排除项,直接用|追加即可,比如再排除resources/文件夹:
exclude: ^(src/poc/|tests/|conftest\.py|resources/)$
注意:
- 这个全局
exclude会作用于所有hooks;如果某个hook需要单独设置排除规则,可以在该hook的配置里单独添加exclude字段,覆盖全局设置。
内容的提问来源于stack exchange,提问作者Kashyap
相关产品推荐
相关产品推荐

