在预提交 Hook 中使用 $GIT_DIR 将返回 .git 目录的位置。即使它没有被明确设置为任何东西,在 pre-commit 钩子(Hook)中使用它仍然会返回你的位置。更新后,迁移到 Git 2.18,这似乎不再是这种情况,并且我的预提交 Hook 的行为有所不同,并且无法按预期工作。知道如何解决这个问题吗?
最佳答案
一些非常详细的信息可以在这里找到
https://public-inbox.org/git/20180826004150.GA31168@sigill.intra.peff.net/t/
为了问题的质量,我将尽我所能解释。
使用 $GIT_DIR,当它没有被明确设置时,在预提交钩子(Hook)中确实在 Git 2.18 之前工作,但是这是一个意想不到的副作用,而不是预期的行为。
GIT 2.18 中的更改导致它停止工作。在链接中,贡献者提到在预提交 Hook (或任何 Hook )中获取 .git 目录位置的正确方法是使用此 git 命令
git rev-parse --git-dir
将来,他们可能会生成一个补丁以将行为恢复到 2.18 之前的状态,但我建议不要依赖未记录和意外的行为
关于git - $GIT_DIR 不再设置在预提交 Hook 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53121208/