【发布时间】:2018-06-12 13:44:04
【问题描述】:
我已经阅读了 flake8 官方文档,它定义了安装 git pre-commit hook 的两步过程:
flake8 --install-hook git
git config --bool flake8.strict true
但它似乎没有提供任何其他类型的钩子。有没有办法安装预推钩。将pre-commit.exe 重命名为pre-push.exe 是否可行?
这是pre-commit 文件:
import sys
from flake8.main import git
if __name__ == '__main__':
sys.exit(
git.hook(
strict=git.config_for('strict'),
lazy=git.config_for('lazy'),
)
)
【问题讨论】:
-
pre-commit和pre-push钩子完全不同。pre-commit不接受参数——它适用于工作树;pre-push接受很多参数。对于flake8pre-commit就足够了。 -
其实我不想做
pre-commit,我只想用pre-push钩子。 -
pre-push对flake8毫无意义,因为flake8测试文件,而不是提交;当然,这样的测试只有在提交之前才有意义。如果你坚持——你必须自己写钩子,flake8不提供它也不应该提供。 -
这差不多一岁了...解决了吗?如果没有,这里有很多关于 githooks 的信息 githooks.com 这可能会对您有所帮助。