Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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 post接收挂钩仅适用于master_Git_Githooks - Fatal编程技术网

用于推送部署的Git post接收挂钩仅适用于master

用于推送部署的Git post接收挂钩仅适用于master,git,githooks,Git,Githooks,我创建了一个远程裸git存储库,如下所示: @server:~$ mkdir -p /home/myuser/domain.git && chmod 770 /home/myuser/domain.git && cd /home/myuser/domain.git && git init --bare 带一个后接钩: @server:~$ nano hooks/post-receive 钩子脚本是: #!/bin/sh git --work-t

我创建了一个远程裸git存储库,如下所示:

@server:~$ mkdir -p /home/myuser/domain.git && chmod 770 /home/myuser/domain.git && cd /home/myuser/domain.git && git init --bare
带一个后接钩:

@server:~$ nano hooks/post-receive
钩子脚本是:

#!/bin/sh
git --work-tree=/var/www/domain --git-dir=/home/myuser/domain.git checkout -f
它有权执行:

@server:~$ chmod +x hooks/post-receive
但是,它只会在我推到主分支时更改网站


为什么??远程头总是主控的,即使我推到另一个分支

默认情况下,它签出主分支

您需要指定要签出的分支,这取决于刚刚推送和接收的分支

以下是一份:


请确保不签出,否则将只签出最后一个分支。

默认情况下,它将签出主分支

您需要指定要签出的分支,这取决于刚刚推送和接收的分支

以下是一份:

请确保不签出,否则将只签出最后一个分支

#!/bin/bash

while read oldrev newrev ref
do
    branch=`echo $ref | cut -d/ -f3`
    GIT_WORK_TREE=/path/to/local/checkout git checkout -f $branch
done