Применение крючка git post-commit ко всем текущим и будущим репозиториям
Я написал git post-commit крюк, и он работает правильно. Тем не менее, я хочу добавить этот крюк, чтобы применить его ко всем текущим (и будущим) репозиториям git, над которыми я работаю. Я попытался добавить крючок к моему ~/.git/hooks/
вместо того, чтобы в каталоге крючков в каталоге проекта, однако, это, похоже, не работает.
есть ли способ создать глобальные крючки Git, которые будут применяться ко всем репозиториям в моей системе (без необходимости копировать их в каждый каталог проекта)? Если нет, то что было бы лучшим решением в будущем-возможно, шаблон git-init?
4 ответа:
Я хочу добавить этот крюк, чтобы применить его ко всем текущим (и будущим) репозиториям git, над которыми я работаю
С git 2.9+ (июнь 2016), все, что вам нужно сделать, это:
git config --global core.hooksPath /path/to/my/centralized/hooks
в разделе " изменить git крючки по умолчанию": это было сделано для управления централизованной крючки.
начиная с git 1.7.1, вы можете установить init.templatedir в вашем gitconfig, чтобы сказать git, где искать шаблоны.
установите его так:
git config --global init.templatedir '~/.git_template'
после этого новые репозитории, которые вы создаете или клонируете, будут использовать этот каталог для шаблонов. Поместите крючки, которые вы хотите в
~/.git_template/hooks
. Существующие репозитории можно повторно инициализировать с помощью соответствующих шаблонов, запустивgit init
в том же каталоге.git
- это в.для версий git старше 1.7.1, работает
git init --template ~/.git_template
будет работать, если вы похожи на меня и все еще хотите управлять своим.git_template
dir вместе с остальными файлами dot. Вы также можете использовать$GIT_TEMPLATE_DIR
среда, чтобы сказатьgit init
где находится каталог шаблона.
если вы хотите, чтобы они были везде в вашей системе (включая пользователей помимо вас), вы можете изменить содержимое установленного каталога шаблонов - они находятся в
$PREFIX/share/git-core/templates/hooks
, где$PREFIX
наверное/usr/local
или/usr
.если вы хотите, чтобы это для вас, то да, проще всего будет
--template
опция git-init. Вы можете легко сохранить личный каталог шаблонов, который имеет символические ссылки на установленную версию по умолчанию, которую вы хотите сохранить (отдельные крючки, информационный каталог...) и тогда ваш собственный контент вhooks/post-commit
и все, что вы хотите настроить.
минималистский подход заключается в создании
git_hooks/
каталог в вашем репозитории для отслеживания крючков, которые вы пишете для этого проекта, доведите его до сведения будущих пользователей, упомянув его вREADME
, и полагаться на них, чтобы сделать правильные вещи после того, как они клонировали. Я размышлял над этим некоторое время и выбрал постепенный подход. В будущем я мог бы рассмотреть возможность использования такого инструмента, как git-hooks.