GIT-获取推送分支名称,服务器端

GIT-获取推送分支名称,服务器端,git,github,git-branch,Git,Github,Git Branch,我有一个git存储库,我想在有人试图推的时候启动一个钩子 在特定的分支上。(pre-receivehook,检查分支,如果是主分支则拒绝。) 当用户在他的$git clone 使用$git push 谢谢。由于git的结构,当用户将其更改推送到远程服务器时,您将首先意识到用户的更改。因此,安全处理这种情况的唯一方法是使用 客户端钩子位于存储库的一个隐藏文件夹中,因此不幸的是,您无法控制它 以前有人问过一个几乎相似的问题 您可以通过使用对不同分支(ref)的更新进行操作。我实际上想使用预接收钩子,

我有一个git存储库,我想在有人试图推的时候启动一个钩子 在特定的分支上。(
pre-receive
hook,检查分支,如果是主分支则拒绝。)

当用户在他的
$git clone
使用
$git push


谢谢。

由于git的结构,当用户将其更改推送到远程服务器时,您将首先意识到用户的更改。因此,安全处理这种情况的唯一方法是使用

客户端钩子位于存储库的一个隐藏文件夹中,因此不幸的是,您无法控制它

以前有人问过一个几乎相似的问题


您可以通过使用对不同分支(ref)的更新进行操作。

我实际上想使用预接收钩子,但是我可以知道调用预接收钩子时用户在推哪个分支吗?在更新脚本中,您可以对单个分支的更新进行操作并撤销它们。@Delfalso预接收钩子的文档(
git help hooks
)解释了什么输入(以及该输入的特定格式)钩子在运行时接收。这包括将被更新的分支的名称以及它们将如何被更新,前提是钩子脚本允许更改…它还记录了@florianb所指的更新钩子。@Delfalso:下面是一个如何使用预接收钩子的示例:只要做一些更改,您就可以拒绝任何推送您需要。@florianb@twalberg使用
update
hook!我们可以在脚本中使用
$1
获得分支名称。谢谢!