Gitlab在组的所有存储库中同步文件夹“hooks”

时间:2017-03-03 17:05:07

标签: ubuntu ubuntu-14.04 gitlab gitlab-omnibus

我在我的服务器上本地设置了Gitlab。我注意到,当我在某些存储库中向“post-receive”文件添加一些代码时,所有更改都应用于该组中的所有其他存储库。

如何阻止它?

1 个答案:

答案 0 :(得分:1)

检查" Custom Git hooks setup":

  

通常,Git钩子放在存储库或项目的钩子目录中。 GitLab从每个项目的hooks目录创建一个符号链接到gitlab-shell hooks目录,以便于gitlab-shell升级之间的维护

这解释了为什么您的钩子似乎传播到该组的所有回购。

  

按照以下步骤设置自定义挂钩:

     
      
  • 选择需要自定义Git挂钩的项目。
  •   
  • 在GitLab服务器上,导航到项目的存储库目录。对于从源安装,路径通常为/home/git/repositories/<group>/<project>.git   对于Omnibus安装,路径通常为/var/opt/gitlab/git-data/repositories/<group>/<project>.git
  •   
  • 在此位置创建名为custom_hooks 的新目录。
  •   
  • 在新的custom_hooks目录中,创建一个名称与钩子类型匹配的文件   对于pre-receive挂钩,文件名应为pre-receive,不带扩展名。
  •   
  • 使钩子文件可执行,并确保它由git拥有。
  •   
  • 编写代码以使Git钩子功能按预期进行
  •