我在" Programm文件中安装了一个git"目录,我没有修改它的权限(只读)。但我想提出一些新的钩子。有没有办法在命令行中调用 git 并为hooks目录指定新路径?
答案 0 :(得分:4)
Git钩子是回购的本地。
创建回购(git init yourRepo
)后,您会在yourRepo/.git/hooks
中看到这些摘要。
2016年5月更新git 2。9(2016年6月)
您有一个新配置: core.hooksPath
commit 867ad08,见commit de0824e,commit bf7d977,commit 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安装的一部分)。