105

如果我在 repo/.git/hooks/post-commit 的本地存储库中创建一个新的钩子脚本,然后我运行“git push”,钩子会推送到远程吗?然后,当其他开发人员从同一来源运行“git pull”时,他们会得到我的新钩子吗?

4

3 回答 3

86

不,钩子是每个存储库的,永远不会被推送。同样,repo 配置也没有被推送,也没有任何东西.git/info,或者其他一些东西。

推送和拉取只交换分支/标签和提交对象(以及从提交中可以访问的任何内容,例如树、blob)。

于 2012-08-31T20:42:13.977 回答
49

不,git 钩子不会被推送或拉出,因为它们不是存储库代码的一部分。

请参阅文档以获取简单的客户端和服务器端挂钩列表。

如果要为从给定存储库中克隆或拉取的所有客户端启用一些钩子,则必须将钩子添加到代码库中,然后创建自己的脚本以将它们复制到或从repo/.git/hooks/.

于 2012-08-31T20:41:48.407 回答
17

遗憾的是没有,但从 git 2.9 开始,您可以将它们放入 .githooks 文件夹(正如其他人提到的那样)并运行:

git config --local core.hooksPath .githooks/

所以不需要符号链接或复制文件。

于 2020-09-27T00:34:38.763 回答