【问题标题】:Gitlab pre-commit hookGitlab 预提交钩子
【发布时间】:2017-02-08 17:58:20
【问题描述】:

我想在 gitlab 中使用 pre-commit 钩子。我所做的一切都像在文档中一样:https://docs.gitlab.com/ce/administration/custom_hooks.html

在 custom_hooks 目录中,我创建了包含以下内容的预提交文件:

#!/bin/bash

exit 1

Hook 永远不会被触发,因为我可以提交。

当我对预接收挂钩执行相同操作时 - 一切正常。

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

【问题讨论】:

  • 已解决 - 预提交是一个客户端钩子,应该存储在客户端机器上的 .git/hooks 位置(在我的情况下是在 Windows 上)。请务必注意,克隆存储库时不会复制客户端挂钩。我会尝试使用服务器端的钩子来做所有事情。

标签: hook gitlab pre-commit-hook


【解决方案1】:

Customizing Git - Git Hooks 中所述,不会在服务器上使用客户端挂钩。

我之前解释了为什么不能在克隆中包含钩子:

Since GitLab 7.5,您可以set custom Git Hooks 用于服务器端挂钩。

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

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

【讨论】:

    猜你喜欢
    • 2013-12-15
    • 2016-09-02
    • 1970-01-01
    • 2022-01-07
    • 2019-07-12
    • 2017-12-10
    • 2016-01-12
    • 2015-01-13
    相关资源
    最近更新 更多