【问题标题】:Is there a way to have git pre-push hooks on GitHub? Or Workarounds?有没有办法在 GitHub 上安装 git pre-push 钩子?或解决方法?
【发布时间】:2017-02-28 08:09:45
【问题描述】:

目标:我需要在我的 GitHub 托管的存储库分支上强制执行预推送挂钩,这些分支有协作者,但不幸的是,我找不到让该挂钩进入我和我自己的协作者的方法.git/hooks 目录。

我花了很多时间研究这个问题,但遇到了以下障碍:

  • 没有 GitHub 服务器端挂钩,所以这不是一个选项。不使用 GitHub Enterprise,我们使用的是托管版本。
  • 无法添加 .git/hooks/pre-push,因为 .git 是一个非法的跟踪目录。 GitHub 当然不会让你创建那个目录,如果你尝试在本地添加它,git 会说它是一个无效的路径。

大众智慧希望我:将 pre-push 脚本推送到不同的目录中,并请我的合作伙伴对其进行符号链接。不!我需要这个来自动填充。

我比 git 更了解我自己。如何覆盖保姆保护,以便我可以在这里做我需要做的事情?模板有什么魔力吗?

编辑:或任何其他创造性的解决方案(服务、集成、webhook,假设它们不需要设置服务器即可回复!)。

【问题讨论】:

  • 为什么这会被否决?诸如“git pull 和 get fetch 有什么区别”之类的问题获得了成千上万的支持?
  • 不知道,这些问题对我来说似乎很好。如果您真的想得到答案,可以尝试在meta 中提问。

标签: git github githooks


【解决方案1】:

你不能在 GitHub 上做到这一点。正如您所注意到的,GitHub 没有服务器端挂钩,因此不会这样做。对于将脚本放入会自动为其他用户运行的存储库,这将是一个巨大的安全风险,而且显然不可能使用 git。

您可以尝试切换到另一个允许服务器端挂钩的托管解决方案,例如GitLab

【讨论】:

  • 到目前为止,我只是将钩子脚本添加到存储库中,以及创建从 .git/hooks 目录到存储库中的钩子脚本的符号链接的 setup.sh。我会让人们运行 setup.sh。但是,我会更乐意使用更自动化的东西,例如 Github 提供的一些服务挂钩。烦人的事情是他们需要你设置一个服务器来回话。不幸的是,迁移到 Gitlab 不是这个组织的选择。但是对于以后的演出,我绝对不会推荐 Github。
猜你喜欢
  • 1970-01-01
  • 2014-02-15
  • 2020-09-16
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 2022-11-10
  • 2021-12-31
  • 1970-01-01
相关资源
最近更新 更多