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


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

3 57

3 ответа:

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

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

прежде чем Git вызовет крючок, он меняет свой рабочий каталог на любой в корне рабочего дерева в не "голый" репозиторий, или $Использование переменной git_dir в "голый" репозиторий.

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

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