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

如何在precommit钩子中仅对已提交Python文件运行Black?

解决方法

你只需要调整pre-commit配置,让它把暂存的文件名传递给Black,就能实现仅对已提交(暂存)的文件运行格式化:

修改后的配置如下:

fail_fast: true
repos:
  - repo: local
    hooks:
      - id: black
        name: Black
        entry: poetry run black
        pass_filenames: true
        language: system

关键调整说明:

  • 将pass_filenames: false改为true:这会让pre-commit自动将当前暂存的文件列表作为参数传递给Black命令。
  • 移除entry命令末尾的.:原来的poetry run black .会强制格式化整个项目目录,现在只保留poetry run black,让它接收pre-commit传递的文件名列表,仅处理这些文件。

这样配置后,每次触发pre-commit钩子时,Black只会对你即将提交的文件进行格式化,不会遍历整个项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:46:07