服务器端.git / hooks文件夹的位置

时间:2016-04-14 13:46:19

标签: git githooks

我需要监控多个Git存储库中的更改。我知道可以用所谓的git-hooks完成。搜索互联网(这里,GitHub,...)我在Atlassian教程中找到了一些东西:https://www.atlassian.com/git/tutorials/git-hooks/server-side-hooks。但是,我无法找到它们的位置。据我所知,它们应该位于某个地方,因为它们是向开发人员开放的,至少根据文本的提示。那么,谁知道在哪里找到它们?

2 个答案:

答案 0 :(得分:2)

服务器端挂钩位于 bare 远程存储库的hooks目录中,例如repo.git/hooks/

答案 1 :(得分:1)

没有“客户端”和“服务器端”Git存储库这样的东西。

差异 - 存在时 - 通常是服务器端Git存储库被创建为“裸”(参见git help init)。这样的存储库与“正常”不同 - 你通常在开发人员的机器上找到它们,因为它们不包含工作树 - 文件被检出并被开发人员修改的地方。

因此,当一个普通的Git存储库包含工作树和名为“.git”的目录,其中存储库本身紧接在工作树下时,裸存储库直接就是常规存储库在其“ .git“子目录。 (这就是为什么在手工创建裸存储库时,习惯上给它命名为“.git”。)

因此,当常规存储库具有“.git / hooks”时,您的服务器端存储库只有“挂钩” - 就在存储库的目录中。

请注意,如果您直接使用Git或使用“简单”前端(例如gitolite)为服务器端存储库提供服务,则上述所有内容都适用。高级第三方托管解决方案可能使用不同的方式来提供此类存储库,并对“钩子”对他们意味着什么有不同的想法。我的意思是,Git挂钩只有在Git启动时才会调用,以便为存储库提供推送或提取。)