使用Git分支进行在线开发和测试

3

我需要一种在发布之前在线测试更改的方法。 到目前为止,据我所知,git 可以在其中扮演一个角色。 但是当涉及到 git 时,我了解甚少...

初步信息如下: 1)网站域名是:http://www.domain.com 2)使用通配符“*”进行 DNS 重定向 *.domain.com => www.domain.com

1)我认为我应该使用开发分支...但是我如何实时测试该分支呢? 2)我应该使用什么链接来访问该分支,并如何设置它?

3个回答

0

为了实现这一点,您需要在服务器上的不同位置部署开发分支并使用子域名。
例如,www.domain.com 将是您的生产环境,dev.domain.com 将是您的测试分支。
子域名将指向服务器上的不同位置。
您可以在 Web 服务器配置中设置此项。
为了更安全,我还建议使用密码或 IP 白名单限制对开发子域名的访问。

如果您告诉我有关服务器配置的更多信息,我可能能够向您展示配置。
首先,您使用什么 Web 服务器?


嗨,koleror,我有一个带有CentOS的托管Rackspace服务器...我回答了你的问题吗? - Wowzaaa
不是真的。好的,基本上,你是否完全控制了服务器配置?你有root访问权限吗?如果没有,你应该向你的提供商寻求帮助... - koleror
我有SSH,但我也可以要求他们为我做事...我不知道该告诉他们做什么:)))比如...步骤1)创建一个名为dev的子域,步骤2)...嗯,我不知道:)) - Wowzaaa

0

这是我的工作流程。

我有3个主要分支:

  1. Master,该分支反映了主要网站:website.com
  2. Develop,该分支反映了开发网站:dev.website.com
  3. Preprod,为了增加另一层测试,您可能不需要它。

每个功能都在基于develop的分支上编码。当被证明是稳定的时,develop然后合并到master。

我的Web服务器将develop分支与dev子域名同步,并将master分支与主域名同步。


我的最大困惑是如何将服务器设置指向一个分支?我是说...当我创建子域时,我必须指定服务器上的位置...我不知道 Git 的分支是否可以与该位置关联起来 :| - Wowzaaa
就像我之前所说的那样,只需在服务器上的两个不同位置部署您的分支,并将您的子域指向正确的位置即可。 - koleror
当我们谈论部署时,我们指的是您自己的脚本,该脚本调用 git clone 并检出所选分支。可能在部署应用程序时您想要执行更多操作(如迁移数据库、重新启动应用服务器等)。 - Rafał Rawicki
我有一个文件夹 /var/www/website.com 和另一个 /var/www/dev.website.com,它们都被 Web 服务器用作虚拟主机。 - Intrepidd
如果您只有 PHP 代码,那么设置起来就非常容易。步骤1)在服务器的不同位置部署您的开发分支。步骤2)设置您的 Web 服务器(例如 Apache 或 Nginx)使虚拟域指向您的新开发文件夹。 - koleror
显示剩余2条评论

0

我假设你已经阅读了一些git教程,我想推荐Git Immersion

你可以使用简单的设置开始 - 保持两个分支 - 一个(主分支)用于稳定、经过测试的代码,另一个用于你开发的代码这里有一篇好文章描述了一个好的、完整的git分支模型,所以你可以看到它在更大的项目中是如何运作的。

最好有一些自动化的方式将代码部署到服务器上。当你有一个(使用一些CI工具或脚本来检出仓库,复制必要的文件,运行数据库迁移等)时,就可以轻松地将应用程序部署到任何位置(例如指定的测试服务器)。我不会冒险在生产服务器上测试新代码,但如果你缺钱,可以这样做。 记得为开发应用程序设置单独的数据库副本

当你稳定了代码并且可以在生产中使用时,将开发分支与主分支合并


感谢这篇文章和评论。我应该如何自动化代码部署到服务器的方式?是使用 cron 作业还是其他方式?手动合并开发分支到主分支对我来说不是问题。但我想要的是,当我需要编写程序时,创建一个开发分支,然后立即让 dev.domain.com 链接指向新分支。我该如何设置这个呢? - Wowzaaa
Cron不是一个好主意。你应该为你的特定配置编写一个脚本,并在你想要在服务器上安装新版本时运行它(这发生在将一些提交推送到存储库之后)。你可以使用ssh在服务器上运行git clone - Rafał Rawicki
提交或推送到代码库后运行的操作可以使用“git钩子”自动化(请查看Google获取详细信息)。 - Rafał Rawicki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接