我followed these directions安装 flake8 预提交 Hook :flake8 --install-hook git
。如何让每个人都默认使用此预提交 Hook ?
看起来它改变了我自己的沙箱(.git/hooks/pre-commit
),但是没有什么可以提交或推送的。该项目的其他开发人员不会获得预提交 Hook ,除非他们自己安装它。
我希望它像 .gitignore,其中有一个文件保存在源代码控制中,我们都可以更新和版本化。
最佳答案
本地 Hook 不像 .gitignore
文件。相反,它们就像 .git/info/exclude
。也就是说,它们是本地的,并且必须在任何应该使用它们的存储库上进行配置。
可以说出于安全原因,为什么应该这样。 (克隆你的 repo 并不意味着我想在启动 git 命令时默认运行你的代码。)但是无论你是否同意这些原因,这就是 Hook 的工作方式。
您可以做的是提供 Hook 脚本,可能是将脚本复制到正确目录的安装程序,以及要求开发人员安装 Hook 的自述文件。
如果您需要开发人员无法覆盖的东西,您需要一个服务器端 Hook 。例如,您可以使用预接收 Hook 来拒绝不遵循您希望在提交级别强制执行的规则的推送。 (这确实会激励开发人员安装预提交 Hook ,以便他们更快地发现任何违反规则的行为,而不会浪费精力。)
关于git - 项目中每个人的默认 git 预提交 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153405/