In a git hook is the current working directory guaranteed to be within the git repository?
Experimentally it seems that git hooks get run with the current direct开发者_运维知识库ory set to be the root of the repository. However, I can't see any guarantee about that in the git documentation. Should I rely on the current working directory to locate the git repository, or is there a better way to work out the git repository associated with the hook?
The current answers appear to be outdated. As of 2.9.0, the docs state the following:
Before Git invokes a hook, it changes its working directory to either the root of the working tree in a non-bare repository, or to the $GIT_DIR in a bare repository.
https://git-scm.com/docs/githooks/2.9.0
It is based on the value set for environment variable GIT_DIR
. It is set to the root of the repository when the hook starts running. Many hooks, especially those doing a pull from another repo, unset ( and reset) this environment variable as needed.
You can use the environment variable $GIT_DIR
. $GIT_DIR
points at the .git
directory.
精彩评论