Git在提交/推送时将分支部署到服务器

时间:2014-10-17 15:36:40

标签: git deployment development-environment git-branch

我正在网站上工作并开始使用版本控制(Git)并且有几个分支(" master"和#34; develop"现在)。所以我经常承诺开发"开发"然后把它推到Bitbucket。

我希望我们的开发网络服务器始终拥有最新版本的" develop"分支,而不是通过FTP手动上传。

我可以完全访问此Web服务器,Windows 2008 R2(但如果需要,可以使用Linux),因此可以安装我需要的任何内容。

关于如何做到这一点的任何想法?

我对Git相当陌生,所以请说如果我想做的事情只是简单的疯狂。

1 个答案:

答案 0 :(得分:2)

您可以使用远程git存储库上的post-receive挂钩来捕获对开发分支的提交,并使其部署(或任何您想要的)分支。

只要进行推送,就会在遥控器上运行post-receive挂钩。您基本上需要检测是否对develop分支进行了推送,如果是,则将开发分支检出到您的部署目录。

我的收件后看起来像这样:

DEPLOYDIR=/directory/you/want/to/deploy/to
BRANCH=develop
while read oldrev newrev ref; do
  if [[ $ref =~ .*/$BRANCH$ ]]; then
    echo "Ref $ref received.  Deploying branch to $DEPLOYDIR"
    cd $DEPLOYDIR
    git fetch origin
    git reset --hard origin/$BRANCH
  fi
done

我在设置收件后发现这篇文章非常有用:http://gitolite.com/deploy.html