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

jfr*_*how 10 windows git

很少的背景:我们是一个由6名开发人员组成的团队,他们正在使 自从发布以来,我们一直使用CVS作为我们在使用ColdFusion w/Eclipse的Windows服务器上的源代码控制系统.随着最近围绕Git和分布式系统的大肆宣传,我们认为我们会检查出来.

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

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

关于Git如何在这种情况下工作,我有点困惑,这显然不是一个不常见的场景,但我发现的大部分内容都没有详细谈论它.

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

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

如果我的假设是正确的,那么主要问题是分期会发生什么.显然,某些功能/修复需要更长的时间来测试,有一些是比较急,等我将能够简单地做一些像某些功能/分支机构的拉到分期进行最后的签核,然后做同样的从直播服务器(拉,因为他们已签字)?

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

Von*_*onC 4

  • 本地分支很重要,因为您可以创建任意数量的分支,并且可以轻松地合并它们。
  • 跟踪分支(实际上是远程跟踪分支之后的本地分支)与您的情况更为相关,因为您允许您将本地分支正式链接到远程分支,以用于发布目的(DVCS 的另一个重要功能:您可以“发布”提交到一个远程存储库或另一个)

这个想法是定义:

  • 用于推送目的的裸仓库
    • 一个开发裸存储库,所有开发人员都可以在其中推送他们当前的工作,和/或从同事那里获取工作(有点像本地“中心”存储库,但存在许多其他工作流程,如本ProGit 书页中描述的工作流程)
    • 一个裸露的暂存存储库,其中暂存分支与要测试/验证的内容一起推送。
      QA 团队可以克隆该存储库,以获得可以运行和测试网站的暂存工作目录。
    • 生产环境中服务器中的裸存储库。
      产品经理可以克隆它,然后将其 rsync/ftp 到将管理实时网站的实际生产服务器。
      注意:实际生产服务器上不应有任何 DVCS。您应该只拥有运行/监控生产环境所需的内容。

基本工作流程基于这些环境(存储库)之间的推/拉分支:

  • 在 dev 和 staging 存储库上,您可以维护多个官方公共分支,有点像Git 维护者 Julio C. Hamano使用他的 'public'、'maint'、'next'、'pu' 分支
  • 在将任何内容推送到暂存之前,您可以首先在远程暂存分支之上重新调整您的工作,以便在本地解决任何冲突,并使用暂存区域中检测到/进行的任何修复更新本地开发工作。
  • 从暂存到生产的推送应该是微不足道的(没有冲突,因为在生产回购方面没有进行任何修改)
  • 您可以在暂存存储库和生产存储库上定义挂钩,以仅接受某些分支,并拒绝任何分支创建(与所有开发存储库相反,您可以在其中定义/推送/拉取所需数量的分支)