gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:04:51 24 4
gpt4 key购买 nike

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

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

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

对于 Git 在这种情况下的工作方式,我有点困惑,这显然不是一个罕见的场景,但我发现的大部分内容都没有详细讨论它。

如果我正确理解本地分支在 Git 中发挥着重要作用,我会先克隆 git 存储库,然后分支出修复某些内容并将其全部提交回本地?

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

如果我的假设是正确的,那么主要问题是分期会发生什么。显然,有些功能/修复需要更长的时间来测试,有些更紧急,等等。我是否可以简单地做一些事情,比如将某些功能/分支 pull 到暂存区以进行最终签核,然后从实时服务器上做同样的事情(在他们签字后 pull )?

拥有 CVS 背景的人需要付出很多...如果有任何帮助,我们将不胜感激!

最佳答案

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

思路是定义:

  • 用于推送目的的裸仓库
    • 一个开发裸仓库,所有开发人员都可以在其中推送他们当前的工作,和/或从他们的同事那里 pull 作品(有点像本地“中央”仓库,但存在许多 other workflows,就像这个 ProGit book page 中描述的那样) )
    • 一个简单的暂存 repo ,其中一个暂存分支被推送到测试/验证的东西。
      QA 团队可以克隆该存储库以获得一个暂存工作目录,他们可以在其中运行和测试网站。
    • 生产环境中服务器中的裸仓库。
      产品经理可以克隆它,然后将其通过 rsync/ftp 传输到将管理实时网站的实际生产服务器。
      注意:实际生产服务器上不应该有任何 DVCS。您应该只拥有运行/监控生产环境所需的东西。

基础 workflow 基于在这些环境 (repos) 之间推/pull 分支:

  • 在 dev 和 staging 存储库中,您可以维护几个官方公共(public)分支,有点像 Git maintainer Julio C. Hamano是吗 with his 'public', 'maint', 'next', 'pu' branches .
  • 在将任何内容推送到暂存区之前,您可以 rebase 您的工作首先在远程暂存分支之上,以便在本地解决任何冲突,并使用在暂存区域中检测到/做出的任何修复来更新您的本地开发工作。
  • 从 staging 推送到 prod 应该是微不足道的(没有冲突,因为在 prod repo 端没有做任何修改)
  • 您可以在 staging 仓库和 prod 仓库上定义钩子(Hook)以仅接受某些分支,并拒绝任何分支创建(与您可以根据需要定义/推送/pull 任意数量的分支的所有开发仓库相反)<

关于windows - 使用 Git 作为 Web 开发和多环境的源代码控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com