如何在没有收件人必须进行任何其他配置的情况下版本和共享githooks? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我为我当前的项目做了一个githook,它在我当地工作,现在我正在尝试与我的团队分享。我们正在使用Windows。我们的团队是易变的和分布式的,人们同时在许多不同的项目上工作,并且不能期望执行额外的手动配置存储库,所以,我需要钩子才能开始为他们下一次工作。我找到了几个教程,但是所有教程都建议在收件人方面进行额外配置。我需要避免这种情况。

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

git githooks
1个回答
3
投票

注意:这实际上是一个评论而不是一个答案(但是太大而不能作为评论)。查看链接的副本以获得实际答案。

需要进行某种配置,因为如果不是这样,我可以通过克隆我控制的存储库的简单行为让您的计算机做坏事。毕竟,钩子可以运行任意命令

也就是说,如果您的用户至少配置了一个钩子,那么一个钩子可以使用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上引起了问题。现代Git在进入存储库和出路的过程中检查和拒绝这些文件(如果Evil Wizards通过隐身和/或欺骗制造坏的存储库)。

© www.soinside.com 2019 - 2024. All rights reserved.