如何在无需收件人进行任何其他配置的情况下对githooks进行版本控制和共享?

时间:2019-02-12 23:07:18

标签: git githooks

我为当前的项目制作了一个githook,它在本地对我有效,现在我正尝试与团队共享。我们正在使用Windows。我们的团队动摇且分散,人们同时从事许多不同的项目,并且不能期望对存储库执行其他手动配置,因此,我需要一个下钩才能开始为他们工作。我找到了一些教程,但是所有这些教程都建议在接收方进行其他配置。我需要避免这种情况。

P.S。理想情况下,我希望只将.git / hooks文件夹添加到存储库中,但这似乎在GIT中是不可能的。

1 个答案:

答案 0 :(得分:3)

注意:这实际上是评论而不是答案(但太大了,无法发表评论)。请参阅链接的重复项以获取实际答案。

需要某种配置,因为如果不是这样,那么只需克隆您控制的存储库,我就可以使您的计算机做坏事。毕竟,钩子可以运行任意命令。 1

也就是说,如果您的用户配置了至少一个挂钩,则该挂钩可以使用Git获取并安装更多挂钩。因此,选择一个将要运行的钩子,让用户配置它,然后让他们运行运行该钩子的Git操作。这样,一个钩子就可以做其他所有事情。

您应该使用哪个挂钩?这取决于你; the githooks documentation告诉您Git何时运行。最明显的候选者是post-checkoutpost-mergepre-commit钩子。

在这一点上,它只是small matter of programming


1 旧版本的Git中存在一个可怕的错误:它们可以使人们存储名为.GIT/hooks/post-checkout.gIt/hooks/post-merge的文件。这对Linux系统没有有害影响,但在MacOS和Windows上引起了问题。 Modern Git在进入存储库和从存储库中取出文件时都会检查并拒绝此类文件(如果Evil Wizards通过隐身和/或欺骗手段创建了错误的存储库)。