我尝试添加预提交钩子文件gitlab服务器端。我知道pre-commit hook是客户端钩子。我只想在所有项目的.git/hooks
文件夹中添加预提交钩子文件。
我尝试了什么: -
我编辑了gitlab服务器机器中的所有pre-commit.sample
文件并创建了新项目。但是克隆了repo之后我没有在我的本地(windows)中找到编辑过的示例钩子文件。
有没有办法在服务器端的所有项目的git文件夹中添加pre-commit
挂钩?因为我们有超过500个项目。
答案 0 :(得分:3)
您无法从https://git-scm.com/book/gr/v2/Customizing-Git-Git-Hooks
的文档中执行此操作请务必注意,克隆存储库时不会复制客户端挂钩。如果您对这些脚本的意图是强制执行策略,那么您可能希望在服务器端执行此操作
答案 1 :(得分:0)
这是客户端钩子的基本权衡:它们无法集中配置。
您可以将所需的钩子脚本添加到工作树中,以及在工作树的根目录中运行的脚本,以将脚本复制到.git/hooks
。然后,如果单个用户想要挂钩,他们就可以运行该脚本。 (假设他们没有一些奇特的设置,其中.git
不在工作树的根目录中。)
但不,你不能自动克隆你的回购导致你选择的任意代码在你的别人的计算机上运行时。