$ GIT_DIR больше не установлен в хуках предварительной фиксации - PullRequest
0 голосов
/ 02 ноября 2018

Использование $ GIT_DIR в хуке предварительной фиксации вернет местоположение каталога .git. Даже если он не был явно установлен на что-либо, использование его в хуке предварительной фиксации все равно вернет вам местоположение. После обновления, переходя на Git 2.18, это, похоже, уже не так, и поведение моих ловушек перед фиксацией отличается и работает не так, как задумано. Есть идеи как это исправить?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Исправить, поставить

export GIT_DIR=${GIT_DIR-`git rev-parse --git-dir`}

впереди в вашем крючке.

0 голосов
/ 02 ноября 2018

Некоторую действительно подробную информацию об этом можно найти здесь

https://public-inbox.org/git/20180826004150.GA31168@sigill.intra.peff.net/t/

Я постараюсь перефразировать в меру своих возможностей ради качества вопроса.

Использование $ GIT_DIR, когда он не был установлен в явном виде, в хуках перед фиксацией работало до Git 2.18, однако это было неожиданным побочным эффектом и непреднамеренным поведением.

Изменение в GIT 2.18 привело к тому, что это перестало работать. В ссылке участник упоминает, что правильный способ получить местоположение каталога .git - это ловушка перед фиксацией (или любая ловушка в этом отношении) - использовать эту команду git

git rev-parse --git-dir

Они могут в будущем создать патч, чтобы вернуть поведение к тому, что было до 2.18, но я бы рекомендовал не полагаться на недокументированное и непреднамеренное поведение

...