在一个git钩子是当前的工作目录保证在git仓库内?
在实验上,似乎git钩子运行与当前目录设置为存储库的根。 但是,在git文档中我看不到任何保证。 我应该依赖当前的工作目录来定位git仓库,还是有更好的方法来解决与钩子关联的git仓库?
它基于为环境variablesGIT_DIR
设置的值。 当钩子开始运行时,它被设置到仓库的根目录。 许多钩子,尤其是那些从另一个仓库进行抽取的钩子,根据需要取消(重置)这个环境variables。
目前的答案似乎已经过时了。 截至2.9.0,文档陈述如下:
在Git调用一个钩子之前,它将其工作目录更改为非裸仓库中工作树的根目录或裸仓库中的$ GIT_DIR。
您可以使用环境variables$GIT_DIR
。 $GIT_DIR
指向.git
目录。