Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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 使用Assembla'自动部署;s的SSH部署工具_Git_Deployment_Assembla - Fatal编程技术网

Git 使用Assembla'自动部署;s的SSH部署工具

Git 使用Assembla'自动部署;s的SSH部署工具,git,deployment,assembla,Git,Deployment,Assembla,我一直在使用assembla的SSH部署工具来设置自动部署。到目前为止,我所做的是: 使用两个分支master和develope设置git回购 使用以下代码设置要在服务器上部署的SSH脚本。 nohup sh-c'cd/path/to/site&git pull'2>&1 | tee/tmp/log.out 我已将此脚本设置为手动运行,其工作正常。因为我的提交是在服务器上运行的脚本上正确部署的 但是,我在服务器上有两个不同的用于暂存和生产站点的目录,我希望此脚本能够检测分支并相应地将更改部署到暂

我一直在使用assembla的SSH部署工具来设置自动部署。到目前为止,我所做的是:

  • 使用两个分支
    master
    develope
    设置git回购
  • 使用以下代码设置要在服务器上部署的SSH脚本。
    nohup sh-c'cd/path/to/site&git pull'2>&1 | tee/tmp/log.out
  • 我已将此脚本设置为手动运行,其工作正常。因为我的提交是在服务器上运行的脚本上正确部署的
  • 但是,我在服务器上有两个不同的用于暂存和生产站点的目录,我希望此脚本能够检测分支并相应地将更改部署到暂存/生产服务器目录。所以基本上

  • 如果我已经将更改推送到主分支中,那么脚本应该运行并将代码部署到服务器生产目录中,或者通过脚本命令执行git拉入
  • 如果我已将更改推送到开发分支中,那么脚本应该运行并将代码部署到服务器暂存目录中,或者通过脚本命令执行git拉入
  • 问题是assembla没有提供基于特定repo分支调用脚本的选项,如果我使用现有设置,那么在向repo的任何分支提交代码时,都会调用脚本


    有人能帮我正确设置吗

    您的脚本如何知道存在推送?您是否使用cron来安排它?我使用的是assemblea,因此有一个post-commit钩子可用于在任何assemblearepo中出现推送时发出警报。