用于推送部署的Git post接收挂钩仅适用于master
我创建了一个远程裸git存储库,如下所示:用于推送部署的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
@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