GitLab预提交钩子

8

我希望在GitLab中使用pre-commit hook。我按照文档中的说明做了一切:https://docs.gitlab.com/ce/administration/custom_hooks.html

在custom_hooks目录下,我创建了一个名为pre-commit的文件,并添加了以下内容:

#!/bin/bash

exit 1

钩子没有触发,因为我可以提交。

当我使用 pre-receive 钩子时,一切都很顺利。

如果 Gitlab 不允许使用 pre-commit 钩子怎么办?


2
已解决 - pre-commit 是一个客户端钩子,应该存储在客户端机器的 .git/hooks 位置上(在我的情况下是 Windows)。需要注意的是,当你克隆一个仓库时,客户端钩子不会被复制。我将尝试使用服务器端钩子来完成所有操作。 - Robert Grądzki
1个回答

8
《定制 Git - Git 钩子》所解释的,客户端钩子不会在服务器上使用。
我之前已经解释过为什么无法在克隆中包含钩子: 自从 GitLab 7.5以来,您可以为服务器端钩子设置自定义 Git 钩子

Git 原生支持在不同操作上执行的钩子。服务器端 Git 钩子的示例包括 pre-receive、post-receive 和 update。

通常,Git 钩子放置在存储库或项目的 hooks 目录中。GitLab 创建了一个符号链接,将每个项目的 hooks 目录链接到 gitlab-shell 的 hooks 目录,以便在 gitlab-shell 升级时更容易维护。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接