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

Location of server-side .git/hooks folder

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

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

不存在 "client-side" 和 "server-side" Git 存储库。

不同之处(当它存在时)通常是服务器端 Git 存储库被创建为 "bare"(参见 git help init)。此类存储库不同于 "normal"——您通常在开发人员的机器上找到的存储库,因为它们不包含工作树——开发人员检出和修改文件的地方。

因此,虽然常规的 Git 存储库由工作树和名为“.git”的目录组成,存储库本身 直接位于工作目录下树,裸存储库直接是常规存储库在其“.git”子目录中包含的内容。 (这就是为什么在手动创建裸存储库时,习惯上给它一个以“.git”结尾的名称。)

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

请注意,只有当您直接使用 Git 或使用 "simple" 前端(例如 gitolite 为服务器端存储库提供服务时,以上所有内容才适用.先进的第 3 方托管解决方案可能会使用不同的方式来为此类存储库提供服务,并且对 "the hook" 对它们意味着什么有不同的看法。我的意思是,Git 挂钩仅在启动时由 Git 调用以服务于对存储库的推送或从存储库中获取)。