Подтвердить что ты не робот

В git hook находится текущий рабочий каталог, который, как гарантируется, находится в репозитории git?

Экспериментально кажется, что git hooks запускаются с текущим каталогом, установленным в качестве корня репозитория. Однако я не вижу никаких гарантий в документации git. Должен ли я полагаться на текущий рабочий каталог, чтобы найти репозиторий git, или есть лучший способ обработать репозиторий git, связанный с крюком?

4b9b3361

Ответ 1

Он основан на значении, установленном для переменной окружения GIT_DIR. Он установлен в корень репозитория, когда крюк начинает работать. Многие перехватчики, особенно те, которые делают попытку из другого репо, не задают (и reset) эту переменную среды по мере необходимости.

Ответ 2

Текущие ответы, похоже, устарели. Начиная с 2.9.0, документы указывают следующее:

Прежде чем Git вызывает крючок, он изменяет свою рабочую директорию на корень рабочего дерева в не-голом репозитории или $GIT_DIR в открытом репозитории.

https://git-scm.com/docs/githooks/2.9.0

Ответ 3

Вы можете использовать переменную окружения $GIT_DIR. $GIT_DIR указывает на каталог .git.