【问题标题】:git pre-commit hook filegit 预提交钩子文件
【发布时间】:2018-05-21 13:07:31
【问题描述】:

我尝试在 gitlab 服务器端添加预提交挂钩文件。我知道预提交钩子是客户端钩子。我只想在所有项目的.git/hooks 文件夹中添加预提交挂钩文件。

我尝试了什么:- 我在我的 gitlab 服务器机器中编辑了所有 pre-commit.sample 文件并创建了新项目。但是在克隆存储库后,我没有在我的本地(Windows)中找到编辑后的示例挂钩文件。

有没有办法在服务器端的所有项目的 git 文件夹中添加 pre-commit 挂钩?因为我们有超过 500 个项目。

【问题讨论】:

  • 如何克隆所有项目?通过git clone 或其他工具?

标签: git gitlab pre-commit-hook pre-commit


【解决方案1】:

这是与客户端挂钩的基本权衡:它们不能集中配置。

您可以将所需的钩子脚本添加到工作树,以及在工作树的根目录中运行的脚本,以将脚本复制到.git/hooks。然后,如果个别用户想要挂钩,他们可以运行脚本。 (假设他们没有一些奇特的设置,其中.git 不在工作树的根中。)

但是不,您不能自动克隆您的存储库导致您选择的任意代码在您指定的时间在其他人的计算机上运行。

【讨论】:

  • 明白了!我会去pre-receive钩子
【解决方案2】:

你不能这样做,来自https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks的文档

请务必注意,克隆存储库时不会复制客户端挂钩。如果您使用这些脚本的目的是强制执行策略,您可能希望在服务器端执行此操作

【讨论】:

  • 感谢您的指导。我会通过pre-receive钩子来做这个
猜你喜欢
  • 2013-12-15
  • 2019-07-12
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 2021-03-01
相关资源
最近更新 更多