1

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

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

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

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

4

1 回答 1

2

这很容易实现,并且与 GIT 无关,但取决于您的网络服务器设置和应用程序的部署过程。2个简单的步骤:

  1. 将您的 Web 服务器配置为同时为 www.foobar.com 和 beta.foobar.com 提供服务。为来自不同网络根的不同域提供服务,例如来自主应用程序/var/www/foobar.com/app/public和来自子域/var/www/foobar.com/subdomains/beta/public
  2. 对于部署,只需将 master 分支克隆到.../app/public目录中,并将 beta 分支克隆到.../subdomains/beta/public

该过程还可以使用Capistrano多级扩展等工具自动化。

编辑以回应您的评论:

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

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

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

于 2012-06-22T14:02:34.480 回答