大型php / mysql Web应用程序的版本控制

时间:2010-02-26 07:29:00

标签: svn git version-control

我正在开发一个大型的php / mysql应用程序,我发现我必须使用某种版本控制。我已经阅读了一些关于GIT的文章,但我无法弄清楚最好的方法是做什么。

我有一个专用服务器,用PLESK运行CENTOS。我主要在我使用XAMPP的本地机器上开发。

如果我想使用版本控制,我应该在使用PLESK的服务器上安装它,或者我应该在我的本地机器上安装它。这也将记录我所做的数据库更改。

我质疑的另一件事是使用github。我是否仍应将更改上传到集线器,或者我是否需要在存储源文件的服务器上自己放置。

感谢您的时间!

4 个答案:

答案 0 :(得分:3)

正常的程序是使用版本控制开发您的软件。如果您有需要转到测试或实时服务器的版本,则可以将代码从存储库部署到测试/实时服务器。 如果您正在使用GIT,那么它只需要在您的机器上,因为这就是GIT的设计方式,作为分布式版本控制系统。如果您使用的是Subversion,那么它很可能位于远离您的计算机的服务器上。但是在这种情况下,您仍然可以采用相同的方式进行部署。

由于各种原因将数据库更改添加到版本控制是不正常的(在此处有关于其他问题的讨论)

如果您正在与其他人合作,或者正在向广大世界开放代码以供下载和使用,则只需使用GitHub即可。然而,上传到GitHub的另一个原因是,如果您的本地计算机上的所有代码和存储库崩溃,您丢失了可以从那里恢复的本地副本。但是我假设你正在进行备份?

编辑 - 补充 有一个free book处理git但是为了处理下面你添加一个名为gitignore的文件,你在其中添加了你不想要的文件模式。所以你在目标服务器上有本地配置文件和远程配置文件,但它们不会被覆盖,因为你的本地文件不在存储库中

答案 1 :(得分:2)

您不需要在部署计算机上进行版本控制,只需拥有使用开发计算机连接的SVN存储库即可。当前的构建/发布准备好进行生产时,您只需上传/部署它即可。

生产服务器上不需要SVN客户端。

您可能还想阅读有关Using SVN for Web Development的文章。

答案 2 :(得分:2)

我同意其他答案但是如果您想使用git并在远程计算机上使用快速测试部署方法(对于测试目的很有用),您可以尝试Gitosis。 这是一个简单的git服务器解决方案,只需要在远程计算机上拥有自己的“git服务器”,这对于保留工作的远程备份副本非常有用。

您可以在本地提交更改或将其推送回远程计算机。

在远程计算机上,您还必须在您将用于项目的目录中克隆存储库...

它比看起来容易,而且效果非常好:)。

答案 3 :(得分:1)

使用git,您不需要服务器。任何使用git的文件夹,即运行git --init,都会成为git存储库,并将所有版本信息存储在该目录的子文件夹.git中。

Github用于开源项目之间的协作 - 在中央位置托管存储库的裸副本 - 裸副本只是没有工作树的.git文件夹。

是否可以处理mysql数据库内容; git可以跟踪二进制文件,但是mysql通常将其数据与应用程序的源文件夹分开存储,因此可能很难。

正如Filip所说,您的部署机器上不需要VCS;那说,用git,你可以提升你的提交。