В ловушке git текущий рабочий каталог гарантированно находится в хранилище git? - PullRequest
66 голосов
/ 15 августа 2011

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

Ответы [ 3 ]

42 голосов
/ 20 июня 2016

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

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

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

39 голосов
/ 15 августа 2011

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

3 голосов
/ 15 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...