如何同时部署GitHub项目master主分支与修改分支?有哪些客户验收用部署方案?
GitHub项目多分支部署解决方案
方案1:同服务器双实例并行部署(可同时访问master和需求分支)
该方案可以实现生产环境(master分支)和验收环境(需求分支)同时在线,互不影响:
- 首先在服务器上创建独立的新目录用来存放需求分支代码,不要和原有master分支的部署目录重叠,例如命名为
projectA-demo - 你原有配置的deploy key默认拥有整个仓库的读取权限,无需额外配置密钥,直接拉取对应分支到新目录即可:
git clone -b 你的需求分支名 git@github.com:你的用户名/项目A.git projectA-demo - 给新部署的实例配置独立的访问入口:如果是Web项目,可以配置二级域名、独立端口或者独立访问路径,和master分支的生产入口完全区分开
- 如果你用Docker部署,操作更简单:分别基于两个分支打不同标签的镜像,映射不同端口启动即可,不需要修改目录配置:
# 构建master分支镜像 docker build -t projecta:master . # 构建需求分支镜像 docker build -t projecta:demo . - 后续两个分支的更新完全独立,master走原有部署流程,需求分支更新时进入对应目录执行
git pull origin 你的需求分支名即可
方案2:轻量临时验收方案(无需改动生产服务器配置)
如果你不需要长期同时运行两个分支,只是要给客户做验收用,可以用更简单的方案:
- 用内部测试服务器部署需求分支,只给客户开放对应访问地址,验收通过后再把分支合并到master部署到生产
- 也可以直接用GitHub Codespace运行需求分支,生成临时访问链接发给客户,不需要额外占用服务器资源
注意事项
- 两个分支的数据库、存储等依赖资源建议做隔离,避免验收分支的测试操作影响生产环境的正常运行
- 可以给验收分支配置Webhook自动部署,每次你往需求分支推送代码后自动触发服务器拉取更新,不需要手动登录服务器操作
内容的提问来源于stack exchange,提问作者arun
相关产品推荐
相关产品推荐

