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

如何在pre-commit配置中排除多个目录?

在pre-commit中配置多路径排除的正确方法

pre-commit的全局exclude参数仅支持单个正则表达式字符串,不能用列表或重复定义参数。要同时排除migrations/.*和tests/.*这两类路径,你需要把多个模式合并成一个正则表达式,用|(逻辑或)分隔。

正确配置示例

把原来的exclude行替换成:

exclude: 'migrations/.*|tests/.*'

完整的配置文件如下:

.pre-commit-config.yaml
repos:
-   repo: https://github.com/psf/black
    rev: 23.1.0
    hooks:
    - id: black
      language_version: python3.8
-   repo: https://github.com/PyCQA/flake8
    rev: 6.0.0
    hooks:
    - id: flake8
exclude: 'migrations/.*|tests/.*'

为什么之前的尝试无效

  • 用列表形式定义exclude:pre-commit的配置解析器不接受这种格式,会直接判定配置无效
  • 重复定义exclude:YAML中重复的键会被后面的覆盖,最终只有tests/.*生效,migrations/.*的规则会被忽略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:57:03