使用Git分支来维护网站的子域

时间:2012-06-22 13:56:13

标签: git version-control branch

我不是Git的专家,但我之前已经看过这个(我只是不知道它背后的实际实现)。

我的主网站是www.foobar.com,但我希望在beta.foobar.com上有一个测试子域名(或者如果这太复杂了,那就是foobar.com/beta的测试目录)

有没有办法让我的Git仓库中有2个分支管理主网站和子域名,以便我可以在测试版中完成所有测试,当我发现我的代码满意时,我可以简单地在主代码中合并beta分支?

如果我以错误的方式思考这个问题,请随意提出替代方案。谢谢!

1 个答案:

答案 0 :(得分:2)

这很容易实现,并不是GIT特有的,而是取决于您的网络服务器设置和应用的部署过程。 2个简单的步骤:

  1. 配置您的网络服务器以同时提供www.foobar.com和beta.foobar.com。服务于来自不同网络的不同域,例如来自/var/www/foobar.com/app/public的主应用和来自/var/www/foobar.com/subdomains/beta/public
  2. 的子域
  3. 对于部署,只需将主分支克隆到.../app/public目录,将beta分支克隆到.../subdomains/beta/public
  4. 此过程也可以使用Capistranomultistage extension等工具自动完成。

    编辑以回复您的评论:

    在一个严肃的项目中,您不仅仅是为自己做,您永远不应该更新当前部署的文件。以下是建议的设置:

    1. 拥有一个裸git存储库 - 可以在您的服务器上或在github.com(或任何其他提供商)上访问
    2. 克隆开发计算机上的存储库 - 这是您将要处理的代码
    3. 假设beta分支发生了变化:推动改变
    4. 现在,您可以将裸存储库的beta分支克隆到beta
    5. 的部署路径中
    6. 每当你感觉准备好时:将测试版拉入主人(在开发机器上)
    7. 推送大师
    8. 通过将裸存储库主分支克隆到主
    9. 的部署路径来部署master

      如上所述,像capistrano这样的工具使部署变得简单,甚至可以保留不同部署的历史记录。以this post为例,了解它如何用于PHP部署。