使用git进行Web测试和部署实时站点

时间:2012-11-07 14:16:40

标签: git zend-framework egit zend-studio git-bash

在那一刻我有一个位于H:驱动器的本地git仓库。当我对文件进行更改并保存时,它们存储在此处。然后我可以在我的git服务器上提交,推送和拉出远程仓库中的文件和分支。

我想要做的是处理文件,而不是将它们保存到本地H驱动器,我想将它们保存到我的测试服务器上,以便可以在浏览器中从该服务器运行和测试它们。当所有测试完成后,我想将测试服务器中的文件合并到实时服务器并将它们作为实时系统存在,或者我需要从测试服务器和实时服务器中提取文件并在本地合并它们并将主分支推回到实时服务器?

此外,当分支机构合并到我的主分支机构并推送到实时服务器时,我如何从git repo中解压缩所有文件,以便它们可以作为实时站点运行。

我已尝试git archive并阅读git bundle,试着看看这是否允许我进行各种“解包”,但到目前为止我还没有实现我能真正合作的任何事情。

这是否有可能以我描述的方式工作,如果是这样,你会怎么做呢?

如果不可能,或者有更好的方法可以忽略,请告诉我。

2 个答案:

答案 0 :(得分:1)

我不知道你对拆包的意思是什么,但我想你正在寻找的是部署改变的可能性。 假设您正在开发您的应用程序,并使用staging或dev分支。现在,如果您想在测试服务器上测试您的应用程序,首先必须将所有内容都推送到您的存储库。 您可能想要查看Capistrano。 使用Capistrano,无论使用何种编程语言,您都可以轻松部署应用程序。 该程序将首先使用“sudo aptitude install capistrano”或更好的“gem install capistrano”安装Capistrano。 现在您拥有它,您可以在本地访问您的应用程序并输入“capify”。 由于您要将多个分支部署到不同的服务器,因此请查看Capistrano Multistage Ext。 现在,Capistrano应该创建一些文件,您应该打开.config / deploy.rb并为您的存储库,目标服务器和要推送到目标服务器的分支插入数据。有几个HowTo,但默认.rb应该看起来很熟悉你。 现在通过Capistrano,您的测试服务器链接到存储库的Staging分支,您可以使用“cap staging deploy”通过ssh将您的应用程序部署到测试服务器。 如果一切正常,您可以在本地将暂存分支合并到主服务器中并将其推送到您的存储库中。现在,由于您的Live系统应该链接到您的仓库的主分支,您可以键入“cap production deploy”以使应用程序在您的实时系统上运行。您可能不得不关心数据库迁移,但总体而言就是这样。

快速安装/配置,您可以获得比现在更好的工作流程。

如果您没有对服务器的ssh访问权限,可以查看git-ftp。 希望这对您解决问题有所帮助。

答案 1 :(得分:0)

如果您的测试服务器在您的LAN上,您可以在其上安装Samba,然后将其webroot安装为您的H:驱动器。如果它是远程服务器,某种SSHFS客户端(例如Expandrive)可能会起作用。