我在我的服务器上本地设置了 Gitlab。我注意到,当我向某个存储库中的“接收后”文件添加一些代码时,所有更改都适用于该组中的所有其他存储库。
如何阻止它?
检查“自定义 Git 钩子设置”:
通常,Git hooks 放置在存储库或项目的 hooks 目录中。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钩子功能如预期
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句