如何在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
相关产品推荐
相关产品推荐

