在git钩子中,当前工作目录是否保证在git存储库中?

时间:2011-08-15 13:02:01

标签: git

实验上似乎git hooks在当前目录设置为存储库的根目录的情况下运行。但是,我在git文档中看不到任何保证。我应该依赖当前的工作目录来定位git存储库,还是有更好的方法来计算与钩子相关联的git存储库?

3 个答案:

答案 0 :(得分:41)

目前的答案似乎已过时。从2.9.0开始,文档陈述如下:

  

在Git调用钩子之前,它将其工作目录更改为   非裸存储库中工作树的根,或者   $ GIT_DIR在一个裸存储库中。

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

答案 1 :(得分:39)

它基于为环境变量GIT_DIR设置的值。当钩子开始运行时,它被设置为存储库的根目录。许多钩子,特别是那些从另一个仓库中拉出来的钩子,根据需要取消(并重置)这个环境变量。

答案 2 :(得分:3)

您可以使用环境变量$GIT_DIR$GIT_DIR指向.git目录。