Используйте глобальный каталог для Git hooks (хуков).

Эта конфигурация будет применяться к каждому Git-репозиторию.

Создайте каталог для Git хуков.

$ mkdir -p ~/.git/hooks
Скопируйте Git хуки в этот каталог.
Определите глобальный каталог Git хуков.
$ git config --global core.hooksPath ~/.git/hooks
Проверьте локальную конфигурацию Git.
$ cat ~/.gitconfig 
[user]
        name = Milosz
        email = milosz@evil.corp
[core]
        hooksPath = /home/milosz/.git/hooks

Отныне вы будете использовать только Git-хуки из определенной директории.

$ mkdir test-repo
$ cd test-repo/
$ git init
Initialized empty Git repository in /home/milosz/Projects/test-repo/.git/
$ git commit -m "init" --allow-empty
[master (root-commit) 24a9da6] init
$ git checkout -b "SMART-0001"
Switched to a new branch 'SMART-0001'
$ git commit -m "branch test" --allow-empty
[SMART-0001 63ce23c] SMART-0001: branch test

Использование каталога шаблонов Git

Эта конфигурация может использоваться для каждого репо.

Создадим каталог шаблонов Git.

$ mkdir -p ~/.git/templates

Скопируйте Git хуки в этот каталог.

Определите каталог шаблонов Git.
$ git config --global init.templatedir ~/.git/templates/hooks

Проверьте локальную конфигурацию Git.

$ cat ~/.gitconfig 
[user]
        name = Milosz
        email = milosz@evil.corp
[init]
        templatedir = /home/milosz/.git/templates

Отныне вам нужно инициализировать новый или переинициализировать существующий репозиторий Git, чтобы скопировать Gi хуки  из каталога шаблонов.

$ cd Projects/test-repo/
$ ls .git/hooks/
applypatch-msg.sample  fsmonitor-watchman.sample  pre-applypatch.sample  prepare-commit-msg.sample  pre-rebase.sample   update.sample
commit-msg.sample      post-update.sample         pre-commit.sample      pre-push.sample            pre-receive.sample
$ git init
Reinitialized existing Git repository in /home/milosz/temp/test-repo/.git/
$ ls .git/hooks/
applypatch-msg.sample  commit-msg.sample          post-update.sample     pre-commit.sample          pre-push.sample    pre-receive.sample
commit-msg             fsmonitor-watchman.sample  pre-applypatch.sample  prepare-commit-msg.sample  pre-rebase.sample  update.sample
$ git checkout -b "SMART-0002"
Switched to a new branch 'SMART-0002'
$ git commit -m "branch test" --allow-empty
[SMART-0002 f2a275d] SMART-0002: branch test

 

Поделитесь статьей:

Добавить комментарий