【发布时间】:2020-05-14 10:05:49
【问题描述】:
在提交到 git 之前,我使用 pre-commit 检查了我的 python 代码样式。 它工作得很好。但是现在我正在做一个旧项目,我的大部分工作只是修改文件的几行。但是预提交总是要求我修复文件的所有 pep8 问题。
有没有办法让预提交只检查我刚刚修改的代码而不是整个文件?
【问题讨论】:
标签: python pylint pre-commit pre-commit.com
在提交到 git 之前,我使用 pre-commit 检查了我的 python 代码样式。 它工作得很好。但是现在我正在做一个旧项目,我的大部分工作只是修改文件的几行。但是预提交总是要求我修复文件的所有 pep8 问题。
有没有办法让预提交只检查我刚刚修改的代码而不是整个文件?
【问题讨论】:
标签: python pylint pre-commit pre-commit.com
一般没有。 pre-commit 在 file 级别上操作,不会以任何方式解析底层工具的输出
如果底层工具支持部分更改,那么您可以使用该单独工具的功能,但在框架级别这样做很困难,容易出错(工具输出没有标准化),最重要的是缓慢(重新解析输出和差异并不便宜)
在适应较旧的代码库时,您最好先进行一次测试,以提高代码质量,然后启用您的 linting 工具。通常,您可以利用 autopep8 或 black 等代码格式化程序来简化采用过程
免责声明:我是 pre-commit 的作者
【讨论】:
files: 定期选择加入(尽管通常逐步推出会导致更多合并冲突! )