在一些开发人员共享的web服务器上有一个web项目,促使我为该项目设置Git。
但是我仍然对如何组织它有一些疑问。
让我们假设我在/var/www/中有我的网络项目
一些问题,一些想法,我想得到评论:
在相同的发布文件夹中init git存储库、或创建/var/repo/、在这些项目副本中复制内容和init repos更好吗?
在第一种情况下,我可以将项目作为一个superuser分支,让人们在这个分支上工作.那么一旦测试过,决定合并分支?但在这种情况下,我认为人们不可能轻易地在网络服务器上测试他们的工作.他们应该需要一个当地的环境局。为测试做好准备。
如果我创建了/var/repo/domain.com,最好创建像http://git.domain.com这样的Vhosts,让开发人员测试他们交付的工作。
如果我有/var/repo/project.com并且喜欢发布提交的工作(例如将文件复制到/var/www/project.com),我应该如何执行这个复制操作?和cp -R?是否已经有工具在需要时执行此更新?
发布于 2012-12-05 16:36:34
首先,你真的不应该让你的网络项目成为存储库本身。首先,您应该设置一个存储库,让每个人都可以访问。您可以拥有一个主程序和一个开发分支,每个人都可以为web应用程序的特定部分拥有自己的分支。最好的解决方案是将存储库放在与实际系统不同的服务器上。如果您不想在本地测试东西,您应该设置一个开发/暂存服务器,这样人们就可以在那里测试。最好的过程是为此使用部署脚本,例如Capistrano。
您的过程应该是这样的:服务器A:存储库,其中包含一个主服务器和一个暂存分支+如果开发需要的话其他分支。服务器B: Live (您可以使用capistrano在这里部署主分支-如果您想成为唯一能够部署到活动系统的服务器,您不应该向服务器添加任何ssh密钥,也不应该使用其他身份验证方法)服务器C:测试环境(也可以像您的repos一样位于同一台服务器上,但我个人更喜欢这种分离)
现在,使用capistrano将实时系统与主分支连接起来,并将测试系统与dev/暂存分支连接起来。当然,人们应该可以访问暂存服务器。
它们可以使用dev/暂存分支将它们的更改推送到存储库。在此之后,他们可以使用“”将dev /暂存分支部署到dev服务器,以测试他们的工作。如果一切正常,您可以简单地提取dev分支并签出主服务器。使用“git合并暂存”将dev/暂存分支合并到主存储库中,并将其推入主存储库。之后,“帽生产部署”将在您的活动系统上安装所有的东西。
这是相当容易设置-只要为每个人做一些配置的事情,你会有一个很好的工作流程。
希望能帮上忙。
https://stackoverflow.com/questions/10683556
复制相似问题