разрешение git core.hooksPath отклонено - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь создать один репо со всеми моими хитами и всеми остальными репо, ссылающимися на это.

Моя структура каталогов репо выглядит следующим образом.

~/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

Iесть chmod -R +xr ~/dev/githooks и я использую версию git, которая поддерживает git version 2.17.2.

Что-нибудь еще, я могу попытаться заставить это работать?

1 Ответ

0 голосов
/ 03 января 2019

Ваш 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
...