从 git 2.9(2016 年 6 月)开始,您将需要查看新配置core.hooksPath
以真正确定 hooks 文件夹。
git rev-parse --git-dir
/hooks 已经不够用了。
请参阅Ævar Arnfjörð Bjarmason ( ) 的提交 867ad08、提交 de0824e、提交 bf7d977、提交 49fa52f(2016 年 5 月 4 日)。(由Junio C Hamano 合并 -- --在提交 6675f50中,2016 年 5 月 17 日)avar
gitster
因此,请确保检查是否git config core.hooksPath
已定义,因为它将覆盖默认的钩子文件夹位置。
该git config
文档现在包括:
core.hooksPath
默认情况下,Git 会在 ' $GIT_DIR/hooks
' 目录中寻找你的钩子。
将此设置为不同的路径,例如“ /etc/git/hooks
”,Git 将尝试在该目录中查找您的钩子,例如“ /etc/git/hooks/pre-receive
”而不是“ $GIT_DIR/hooks/pre-receive
”。
路径可以是绝对的或相对的。相对路径被视为相对于运行挂钩的目录。
Git 2.10(2016 年第三季度)使用该新core.hooksPath
设置。
因此,要获得有效 hooks
路径,您需要运行:
git rev-parse --git-path hooks
从git rev-parse
手册页:
--git-path <path>
Resolve "$GIT_DIR/<path>" and takes other path relocation variables such
as $GIT_OBJECT_DIRECTORY, $GIT_INDEX_FILE... into account. For example,
if $GIT_OBJECT_DIRECTORY is set to /foo/bar then "git rev-parse
--git-path objects/abc" returns /foo/bar/abc.
请参阅Johannes Schindelin ( )的提交 9445b49(2016 年 8 月 16 日) 。(由Junio C Hamano 合并 -- --在d05d0e9 提交中,2016 年 8 月 19 日)dscho
gitster