2012-08-31 44 views
51

如果我在本地仓库中创建一个新的钩子脚本在repo/.git/hooks/post-commit然后运行“git push”钩子被推送到远程?那么,当其他开发者运行“git pull”时,他们会得到我的新钩子?当我'推动'时,git钩子是否被推到了远程?

+3

也许这个帮助http://stackoverflow.com/questions/3462955/putting-git-hooks-into-repository – Stony

+0

谢谢,这是我的下一个问题。 :) – slacy

回答

47

编号挂钩是每个存储库,并且从不推送。同样,repo配置也不会被推入,也不会在.git/info或其他许多事情中发生。

推动和拉动只交换分支/标签和提交对象(以及任何可从提交可访问的东西,例如树,斑点)。

+3

有没有办法在中央挂钩,并将它们拉到每个克隆上并应用。 – f1wade

33

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

请参考the documentation了解简单的客户端和服务器端挂钩的列表。

如果要为所有从给定存储库克隆或提取的客户端启用某些挂钩,则必须将挂钩添加到您的代码库,然后创建自己的脚本以将其复制或链接到repo/.git/hooks/

+3

但复制脚本如何被调用? –

+5

@AdamJohns它被用户/开发人员调用,可能以开发者在第一次克隆版本库时运行的'setup.sh'的形式进行调用。之后,钩子的更新可以通过重新运行一个脚本来自动发生,例如,在每次拉动后都会更新脚本。所以你不必依靠开发人员自己来做。 – cm92