首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将git post-commit挂钩应用于所有当前和未来的repos

将git post-commit挂钩应用于所有当前和未来的repos
EN

Stack Overflow用户
提问于 2010-02-19 09:24:42
回答 4查看 81.6K关注 0票数 295

我已经编写了一个Git post-commit钩子,它可以正常工作。然而,我想添加这个钩子来应用于我正在处理的所有当前(和未来) git存储库。我尝试将钩子添加到我的~/.git/hooks/中,而不是添加到项目目录中的钩子目录中,然而,这似乎不起作用。

有没有办法创建全局Git钩子,应用于我系统上的所有存储库(而不必将它们复制到每个项目目录中)?如果没有,那么下一步的最佳解决方案是什么--也许是git-init模板?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-05-18 15:42:37

我想添加这个钩子,以应用于我正在处理的所有当前(和未来) git存储库

有了git 2.9+ (2016年6月),你所能做的就是:

代码语言:javascript
复制
git config --global core.hooksPath /path/to/my/centralized/hooks

参见"change default git hooks":这是用来管理集中式钩子的。

票数 230
EN

Stack Overflow用户

发布于 2012-01-13 05:34:26

从git 1.7.1开始,你可以在你的gitconfig中设置init.templatedir来告诉git去哪里寻找模板。

如下所示:

代码语言:javascript
复制
git config --global init.templatedir '~/.git_template'

之后,您创建或克隆的新存储库将使用此目录作为模板。在~/.git_template/hooks中放置所需的挂钩。通过在.git所在的同一目录中运行git init,可以使用适当的模板重新初始化现有存储库。

对于早于1.7.1的git版本,如果您和我一样,仍然希望管理.git_template目录和其他点文件,那么运行git init --template ~/.git_template就可以了。您还可以使用$GIT_TEMPLATE_DIR环境告诉git init您的模板目录在哪里。

票数 298
EN

Stack Overflow用户

发布于 2010-02-19 09:49:47

如果您希望它们位于系统中的任何位置(包括您之外的用户),您可以修改已安装模板目录的内容-这些内容位于$PREFIX/share/git-core/templates/hooks中,其中的$PREFIX可能是/usr/local/usr

如果你想让它只为你所用,那么是的,最简单的就是git-init的--template选项。您可以轻松地保留一个个人模板目录,其中包含指向您想要保留的已安装默认版本的符号链接(单独的挂钩、info目录...)然后是您自己在hooks/post-commit中的内容,以及您想要自定义的任何其他内容。

票数 71
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2293498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档