如何为git hooks目录指定新路径?

时间:2014-02-19 07:01:13

标签: git

我在" Programm文件中安装了一个git"目录,我没有修改它的权限(只读)。但我想提出一些新的钩子。有没有办法在命令行中调用 git 并为hooks目录指定新路径?

1 个答案:

答案 0 :(得分:4)

Git钩子是回购的本地。

创建回购(git init yourRepo)后,您会在yourRepo/.git/hooks中看到这些摘要。


2016年5月更新git 2。9(2016年6月)

您有一个新配置: core.hooksPath

commit 867ad08,见commit de0824ecommit bf7d977commit 49fa52fÆvar Arnfjörð Bjarmason (avar)(2016年5月4日)。
(2016年5月17日Junio C Hamano -- gitster -- commit 6675f50合并)

core.hooksPath
  

默认情况下,Git会在“$GIT_DIR/hooks”目录中查找您的挂钩   将此设置为不同的路径,例如'/etc/git/hooks',Git会尝试在该目录中找到您的钩子,例如“/etc/git/hooks/pre-receive”代替“$GIT_DIR/hooks/pre-receive”。

     

路径可以是绝对路径也可以是相对路径。相对路径被视为相对于运行挂钩的目录

“相对路径”部分来自Git Hooks man page

  

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


原始答案(2014年2月)

您可以指定其他 templatedir (来自git config

init.templatedir
  

指定从中复制模板的目录。 (参见git-init(1)的“TEMPLATE DIRECTORY”部分。)

     

默认模板目录包括一些目录结构,一些建议“排除模式”,以及样本“钩子”文件的副本
  建议的模式和钩子文件都是可修改和可扩展的。

这意味着新的仓库(git init)将填充默认内容(包括默认样本挂钩)来自自定义文件夹而不是默认文件夹(这是您的git安装的一部分)。