我创建了一个远程裸git存储库:
@server:~$ nano hooks/post-receive
使用post-receive hook:
#!/bin/sh
git --work-tree=/var/www/domain --git-dir=/home/myuser/domain.git checkout -f
钩子脚本是:
@server:~$ chmod +x hooks/post-receive
它有权执行:
if
但是,当我推送到主分支时,它只会更改网站。
为什么呢?远程 HEAD 始终是主,即使我推送到另一个分支。
答案 0 :(得分:0)
默认情况下,它会检出主分支。
您需要指定要结帐的分支,具体取决于刚刚推送和接收的分支。
这是example of a hook with a specific branch checkout:
#!/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
请确保不 push multiple branches at the same time,否则只会检出最后一个分支。