【问题标题】:Deploying to Different Web Servers via Git通过 Git 部署到不同的 Web 服务器
【发布时间】:2017-04-23 05:35:11
【问题描述】:

远程 Git 存储库是否可以(如果可以,这是一种好习惯)根据分支名称部署到多个 Web 服务器(例如,暂存服务器和生产服务器)?例如,如果开发人员 A 将提交推送到远程分支 STAGING,则该提交将部署到相应的暂存 Web 服务器,而对分支 MASTER 的提交(或合并)将部署到生产服务器。

这是否说明了良好/可靠的工作流程?如果没有,有什么更好的方法?

【问题讨论】:

  • 你用什么方法部署在单台服务器上?

标签: git deployment workflow githooks


【解决方案1】:

是的,我以前见过这样做(比如在我的 previous answer from 2012 中)

get the branch name,使用:

branch=$(git rev-parse --symbolic --abbrev-ref $refname)

然后你可以推送到正确的服务器

  if [ "master" == "$branch" ]; then
    git push production
    echo 'Changes pushed live.'
  fi

  if [ "staging" == "$branch" ]; then
    git push staging
    echo 'Changes pushed to staging.'
  fi

假设有两个遥控器,每个遥控器都引用一个远程裸仓库。
目标裸仓库将有一个 post-receive 挂钩:

git --work-tree=/path/under/root/dir/site/ checkout -f $branch

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-21
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多