繁体   English   中英

$GIT_DIR 不再设置在预提交挂钩中

[英]$GIT_DIR no longer set in pre-commit hooks

在预提交钩子中使用 $GIT_DIR 将返回 .git 目录的位置。 即使它没有被明确设置为任何东西,在 pre-commit 钩子中使用它仍然会返回位置。 更新后,转移到 Git 2.18 似乎不再是这种情况,我的预提交钩子的行为不同,无法按预期工作。 知道如何解决这个问题吗?

一些非常详细的信息可以在这里找到

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 之前的状态,但我建议不要依赖未记录和意外的行为

解决方法是,把

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

在你的钩子前面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM