我followed these directions安装flake8预提交挂钩:flake8 --install-hook git
。如何为每个人提供此预提交挂钩默认值?
看起来它改变了我自己的沙盒(.git/hooks/pre-commit
),但没有什么可以提交或推送。除非他们自己安装,否则项目中的其他开发人员将无法获得预提交挂钩。
我希望它像.gitignore,在源代码控制中保存一个文件,我们都可以更新和版本。
答案 0 :(得分:2)
本地挂钩与.gitignore
文件不同。相反,它们就像.git/info/exclude
。也就是说,它们是 local ,必须在任何应该使用它们的repo上配置。
为什么这应该是这样的安全理由。 (克隆你的repo并不意味着我在发起git命令时默认运行你的代码。)但是你是否订阅了这些原因,这就是钩子的工作方式。
您可以做的是提供钩子脚本,可能是将脚本复制到正确目录的安装程序,以及要求开发人员安装钩子的自述文件。
如果您需要开发人员无法覆盖的内容,则需要服务器端挂钩。例如,您可以使用预接收挂钩来拒绝不遵循您希望在提交级别强制执行的规则的推送。 (这确实为开发人员提供了安装预提交挂钩的动力,这样他们就可以更快地捕获任何违规行为并且不会浪费精力。)