Хуки (Hooks) — это пользовательские скрипты, которые Git может запустить при наступлении некоторых событий. Хуки бывают клиентские и серверные. Клиентские хуки, например, могут запускаться операциями слияния или создания коммита. Серверные хуки могут запускаться, например, операцией получения отправленного коммита.
Если 1C:EDT работает под управлением операционных систем Linux или macOS, то дополнительная настройка не требуется.
Если 1C:EDT работает под управлением операционной системы Windows, то необходимо, чтобы на компьютере был установлен Git: https://git-scm.com/ в рекомендуемом варианте: «Git from the command line and also from 3rd-party software».
Хуки представляют собой текстовые файлы без расширения. Названия файлов фиксированы и обозначают события, при наступлении которых хук должен быть запущен. Содержимое файла это шелл-скрипт на одном из языков, например Perl или Unix shell.
Для того, чтобы Git мог запустить нужный хук, файл должен находиться в каталоге .git/hooks того локального репозитория, для которого он предназначен.
Git, после установки на компьютер, содержит набор демонстрационных хуков. При стандартной установке они расположены в каталоге C:\Program Files\Git\mingw64\share\git-core\templates\hooks и имеют расширение .sample.
При создании локального репозитория эти файлы автоматически копируются в каталог .git/hooks репозитория. Если этого не произошло, можно скопировать их вручную. Имена файлов совпадают с теми событиями, для обработки которых они предназначены. Чтобы файл начал использоваться для обработки события, нужно удалить у него расширение .sample.
1C:EDT поддерживает следующие клиентские хуки:
Подробнее про хуки читайте здесь.
Чтобы проверить работу хуков можно скопировать в каталог .git/hooks репозитория хук-пример pre-commit.sample, удалить у него расширение, добавить в рабочий каталог файл с русским именем и попробовать зафиксировать эти изменения. В результате вы получите сообщение об ошибке:
>git add файл.txt
>git commit
Error: Attempt to add a non-ASCII file name.
This can cause problems if you want to work with people on other platforms.
To be portable it is advisable to rename the file.
If you know what you are doing you can disable this check using:
git config hooks.allownonascii true