2014-04-29 44 views
0

我有一个git存储库,当有人试图在特定分支上推 时,我想启动一个挂钩。 (pre-receive钩,检查分支,拒绝,如果是主分支。)GIT - 获取推送的分行名称,服务器端

是否有一个地方,我可以得到推在服务器端分支任何变量时的用户,他$git clone 使用$git push

谢谢。

回答

1

由于git的结构,当用户将其更改推送到远程时,您将首先意识到用户更改。所以安全处理这种情况的唯一方法是使用server-side-hooks

客户端挂钩驻留在存储库的隐藏文件夹中,因此您不幸无法控制它。

几乎类似的question曾被问过一次。

您可以使用update-script对不同分支(参考)上的更新进行操作。

+0

我实际上想要使用预接收钩子,但是我可以知道用户在预接收钩子被调用时正在推送什么分支吗? – Delfalso

+0

在更新脚本中,您可以对单个分支的更新进行操作并撤消它们。 – florianb

+1

@Delfalso预接收钩子('git help hooks')的文档解释了钩子运行时接收到的输入(以及该输入的特定格式)。这包括将要更新的分支的名称以及它们将如何更新,前提是钩子脚本允许更改......它还记录@florianb所指的更新钩子。 – twalberg