Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git中预推和预接收挂钩的区别?_Git_Githooks - Fatal编程技术网

git中预推和预接收挂钩的区别?

git中预推和预接收挂钩的区别?,git,githooks,Git,Githooks,git中的预推和预接收钩子在用例或工作逻辑方面有区别吗? 我能理解的唯一区别是他们收到的信息- 1.预推:钩子的标准输入中提供了关于要推的内容的信息,其行的形式为-本地参考SP local sha1 SP remote ref SP remote sha1 LF 2.预接收:对于要更新的每个参考,它在标准输入上接收一行格式- 旧值SP新值SP ref name LF 但是,我想知道每个钩子是否有特定的用例,或者它们是否可以互换使用?一个(pre-push)是a,另一个(pre-receive)是

git中的预推和预接收钩子在用例或工作逻辑方面有区别吗?
我能理解的唯一区别是他们收到的信息-

1.预推:钩子的标准输入中提供了关于要推的内容的信息,其行的形式为-本地参考SP local sha1 SP remote ref SP remote sha1 LF

2.预接收:对于要更新的每个参考,它在标准输入上接收一行格式-
旧值SP新值SP ref name LF
但是,我想知道每个钩子是否有特定的用例,或者它们是否可以互换使用?

一个(
pre-push
)是a,另一个(
pre-receive
)是a

在这方面,它们是非常不同的,如果您想要一致地执行给定的策略,您通常在预接收(服务器端)挂钩中执行。这样,您就不必担心在每个客户端上部署预推钩子


记住:钩子是,这意味着预推钩子不容易分配给任何。但是,如果这些下游回购协议都是指同一个上游回购协议,那么预收款挂钩可以适用于所有下游回购协议。

好的。那么预推是客户端钩子,预接收是服务器端钩子,我相信?@user1783805我添加了下游回购的概念:这很重要。非常感谢。简洁明了的回答@user1783805我也在一个类似的主题“我希望整个团队执行测试”上回答了您的问题:然后是一个预接收(服务器端)挂钩,如果linter失败,它将拒绝推送。