Git глобальные хуки и хуки проектов - PullRequest
0 голосов
/ 04 июля 2018

В настоящее время я использую

git config --global core.hooksPath ~/.git/hooks

для настройки глобальных хуков для всех моих проектов git. Но если эти проекты содержат хуки, они не запускаются.

Я бы хотел запустить глобальный хук, а также хуков проекта. Спасибо!

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Чтобы выполнить локальный хук из глобального, можно использовать следующий скрипт:

if [ -e ./.git/hooks/commit-msg ]; then
    ./.git/hooks/commit-msg "$@"
fi

Глобальный хук выполняется в каталоге репо, в котором производится фиксация, и поэтому может проверить, существует ли локальный хук в его каталоге .git.

Обратите внимание, что вы должны принять имя ловушки, если вы используете что-то отличное от ловушки сообщения фиксации.

0 голосов
/ 05 июля 2018

Я думаю, что единственный способ для ваших глобальных хуков проверить, существует ли соответствующий локальный хук и запустить его.

Это не полное решение, потому что некоторые перехватчики (например, pre-push) принимают стандартный ввод в дополнение к параметрам командной строки. Если один из хуков потребляет стандартный ввод, у другого нет шансов.

...