Before Git invokes a hook, it changes its working directory to either
$GIT_DIR in a bare repository or the root of the working tree in a
non-bare repository. An exception are hooks triggered during a push
(pre-receive, update, post-receive, post-update, push-to-checkout)
which are always executed in $GIT_DIR.