git core.hooksPath权限被拒绝的问题

时间:2019-01-02 20:16:23

标签: git githooks

我正在尝试使用所有的githooks创建一个回购协议,其他所有回购协议都引用了该协议。

我的仓库目录结构如下。

~/dev/githooks/.git/hooks
 |-> pre-push
   |-> prevent-master

prevent-master

#!/bin/sh

branch_blocked="master"

if grep -q "$branch_blocked"; then
    echo "Branch '$branch_blocked' is blocked by yourself." >&2
    exit 1
fi

现在,我告诉我的git配置使用此githook目录git config core.hooksPath ~/dev/githooks/.git/hooks

在一个单独的仓库中,我正尝试推送

clickthisnick$ git push
fatal: cannot exec '/Users/clickthisnick/dev/githooks/.git/hooks/pre-push': Permission denied

我有chmod -R +xr ~/dev/githooks,并且正在使用支持该git version 2.17.2的git版本。

还有什么我可以尝试使它起作用的吗?

1 个答案:

答案 0 :(得分:1)

您的git hook需要是一个可执行文件,而不是目录。 git将尝试调用:

/Users/clickthisnick/dev/githooks/.git/hooks/pre-push

但是您已将此目录配置为包含钩子(prevent-master)而不是文件的目录。而是,重命名:

/Users/clickthisnick/dev/githooks/.git/hooks/pre-push/prevent-master

/Users/clickthisnick/dev/githooks/.git/hooks/pre-push