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

使用Git分支维护网站的子域,git,version-control,branch,Git,Version Control,Branch,我不是Git方面的专家,但我以前见过这种情况(我只是不知道它背后的实际实现) 我的主网站是www.foobar.com,但我想在beta.foobar.com上有一个测试子域(或者如果太复杂,在foobar.com/beta上有一个测试目录) 有没有办法在我的Git repo中有两个分支来管理主网站和一个子域,这样我就可以在beta中进行所有测试,当我发现我的代码令人满意时,我就可以简单地将beta合并到主分支中 如果我用错误的方式思考这个问题,请随意提出一个替代方案。谢谢 这非常容易实现,并且

我不是Git方面的专家,但我以前见过这种情况(我只是不知道它背后的实际实现)

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

有没有办法在我的Git repo中有两个分支来管理主网站和一个子域,这样我就可以在beta中进行所有测试,当我发现我的代码令人满意时,我就可以简单地将beta合并到主分支中


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

这非常容易实现,并且不是GIT特有的,但取决于您的Web服务器设置和应用程序的部署过程。2个简单步骤:

  • 将web服务器配置为同时服务www.foobar.com和beta.foobar.com。为不同网络根目录下的不同域提供服务,例如来自
    /var/www/foobar.com/app/public
    的主应用程序和来自
    /var/www/foobar.com/subdomains/beta/public
  • 对于部署,只需将主分支克隆到
    ../app/public
    目录,将beta分支克隆到
    ../subdomains/beta/public
  • 该过程也可以通过和之类的工具实现自动化

    根据您的评论编辑:

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

  • 拥有一个裸露的git存储库-可以在服务器上或github.com(或任何其他提供商)上访问
  • 克隆开发机器上的存储库-这是您将要处理的代码
  • 假设beta分支中有一个更改:推动该更改
  • 现在,您可以将裸存储库的beta分支克隆到beta部署路径中
  • 随时准备好:将beta版拉入master(在您的开发机器上)
  • 推手
  • 通过将裸存储库主分支克隆到主存储库的部署路径中来部署主存储库

  • 如上所述,像capistrano这样的工具使部署变得非常简单,甚至可以保存不同部署的历史记录。例如,看看它是如何用于PHP部署的。

    看看我遇到了一个问题,beta和master分支无法相互看到。如果我将beta分支克隆到beta文件夹中,进行更改并将其合并,则该文件夹中只有beta分支可用。如果我回到主分支,想要合并来自beta分支的更改,它不会看到更改(因为我假设.git文件夹位于不同的位置)。还有其他建议吗?编辑我的答案以反映您的评论。