git - 项目中每个人的默认 git 预提交 Hook ?

标签 git flake8

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/

相关文章:

windows - Windows 网络共享上的 GIT 中央存储库

git - 使用Gitlab的API,如何在分支之间切换?

git - 如何在不先克隆 git 存储库的情况下将其 "connect"?

python - S101 为 python 测试检测到断言的使用

python - flake8 - 忽略函数的警告

python - Flake8Lint 错误 : AttributeError: 'NoneType' object has no attribute 'kind'

git - 多个存储库和 Heroku

python - flake8 每个文件的最大复杂度

flake8 - 如何使用 flake8 排除 git 预提交 Hook 中的文件?

git - 如何从现有存储库中的分支创建新的 GitHub 存储库?