使用Git作为Web开发和多个环境的源代码控制

时间:2010-02-16 17:46:32

标签: windows git

小环境:我们是一个由6名开发人员组成的团队,他们正在使用Web应用程序自从发布以来,我们一直使用CVS作为我们在使用ColdFusion w / Eclipse的Windows服务器上的源代码控制系统。随着最近围绕Git和分布式系统的所有宣传,我们认为我们会检查它。

作为标准的Web应用程序,我们在本地环境中开发新功能/错误修复。一个开发环境,我们通过QA推送所有内容进行初始测试。我们发送已经测试过的功能/修复的分段我们的环境是尽可能地模仿我们的生产服务器。最后,一切都在旷野的现场系统中进行...

这个过程非常痛苦,因为大部分时间都是通过FTP完成的,而且在提交时我们遇到冲突,因为某些事情需要比平时更长的时间来测试,或者需要快速修复错误。

我对Git如何在这种情况下工作感到有些困惑,这显然不是一个不常见的场景,但我发现的大部分内容都没有详细讨论。

如果我理解正确的本地分支机构在Git中发挥重要作用,我首先克隆git存储库然后分支修复一些东西并将其全部提交回本地?

然后我将它提交回主干库下的主存储库处理合并冲突,如果有的话?

如果我的假设是正确的,那么主要的问题是分期会发生什么。显然,一些功能/修复需要更长的时间来测试,一些更紧急,等等。我是否能够简单地执行某些功能,例如将某些功能/分支拉到分段上以进行最终签核,然后从实时服务器执行相同操作(拉,因为他们已签字)?

从CVS背景中获取相当多的东西......任何帮助都将不胜感激!

1 个答案:

答案 0 :(得分:4)

  • 本地分支很重要,因为您可以根据需要创建任意数量的分支,并轻松合并它们。
  • Tracking branches(实际上local branch following a remote tracking one)在您的情况下更相关,因为您允许您正式将本地分支链接到远程分支,以用于发布目的( DVCS的另一个重要功能:您可以“ publish ”提交到一个远程仓库或其他远程仓库

想法是定义:

  • 用于推动目的的裸回购
    • 一个dev dev repo,所有开发者都可以推动他们当前的工作,和/或从他们的同事那里获取作品(一种本地的“中央”回购,但是很多other workflows存在,就像这里描述的那样{ {3}})
    • 一个裸露的临时仓库,其中一个分段分支被推送到测试/验证的东西 QA团队可以克隆该repo,以获得一个可以运行和测试网站的登台工作目录。
    • 生产环境中服务器中的裸仓库 prod管理器可以克隆它,然后rsync / ftp到实际的生产服务器,它将管理实时网站。
      注意:您不应在实际的生产服务器上安装任何DVCS。您应该只拥有运行/监控生产环境所需的内容。

基本 ProGit book page 基于在这些环境之间推送/拉动分支(repos):

  • 在dev和staging repo上,你可以维护几个官方公共分支,有点像workflow那样Git maintainer Julio C. Hamano
  • 在推送任何内容之前,您可以先在远程登台分支上 with his 'public', 'maint', 'next', 'pu' branches 您的工作,以解决本地任何冲突并更新您的本地开发人员使用在暂存区域中检测到的任何修复。
  • 从分段推送到prod应该是微不足道的(没有冲突,因为没有对prod repo方进行修改)
  • 你可以在staging repo和prod repo上定义钩子只接受某些分支,并拒绝任何分支创建(与你可以定义/推/拉所需多个分支的所有dev repos相对)
相关问题