网站的简单Git分支模型

时间:2011-08-11 05:54:05

标签: git git-branch

有人可以建议一个简单的git分支模式用于网站开发。我已经看过几个关于成功的git分支模型的讨论,遗憾的是它们对于我们的案例来说都非常复杂。大多数分支模型适用于具有版本和发布周期的软件。

我们公司管理多个门户网站。我们有5人在这些网站上工作。大多数情况下,2-3人可能在同一个网站上工作,但在不同的部分(冲突的可能性几乎为零)。我们没有任何版本或发布周期。程序员将开发一个特定的部分,之后它将被传递给另一个人,他将为该部分编写内容并执行SEO。完成后,该部分将上传到公共网站。与此同时,另一位程序员可能正在更新现有部分。如果报告了错误或错误,将立即修复并上传。

通常,每周会添加/更新2-3个新部分。

目前我们只有一个分支(主)并且只有当这个人正在进行大变更时才会创建一个新的分支,这将需要超过2周才能完成。这里的问题是主分支与当前生产文件不同步。我想改变它并将开发移动到另一个分支,以便可以直接在主分支上应用错误修复而不用担心。

更新的 为每个部分创建一个单独的分支是不是很糟糕?换句话说,多少分支被认为太多了?

4 个答案:

答案 0 :(得分:2)

对我来说,你真正需要的是改进你的工作模式和流程。 Git不是流程问题的答案,它只是一个应该支持您选择的流程的工具。

即使您声称自己没有发布周期,但仍然有发行版:至少生产中的正在运行的副本应被视为发行版/版本。如果从质量保证/测试的角度来看,没有什么能阻止你每周产生10个版本。

有一点想法:

  • 生产站点必须始终在分支中具有1:1克隆(无论是主要,发布还是其他)
  • 在生产站点中运行的“发布”应始终在版本控制中具有用于跟踪目的的标记。

对于它的价值,我认为您描述了这样的模型:http://nvie.com/posts/a-successful-git-branching-model/

答案 1 :(得分:1)

你有一个相当顺序的开发周期,所以你是对的:那里不需要大量的功能分支。

一个简单的模型:

*--*--*--*---*   (master, for prod)
    \       /
     *--*--*--* (dev, for current development)

问题是:

当prod('master',实时网站)中存在错误时,您是否可以在 dev 分支上修复它包括正在进行的任何发展?

因为如果你不能,那就意味着master上的更改必须立即合并到dev。如果快速完成修复,您甚至不需要“fix”分支。

换句话说,您不需要所有复杂的“A successful Git branching model”模型。

答案 2 :(得分:1)

您说您只为超过两周的更改创建分支,但从技术上讲,每个开发人员的本地副本都是一个单独的分支,尤其是像git这样的DVCS。我猜你的官方主分支与生产中的分支不匹配,因为你正在使用该分支来共享程序员和内容创建者之间的变化。在这种短暂的发布周期中,我会做的是让这两个协作者与彼此共享他们的本地存储库,完全跳过中央存储库,直到它经过测试并准备推向生产。这样,您可以根据需要自动拥有尽可能多的开发分支,并且您的官方中央存储库仍然保持干净。

如果这对您的小组来说太过分了,您可以随时创建一个production分支,直接接收错误修复,并且只要它处于稳定点就可以合并到主分支上以进入生产阶段。这样,您的开发人员仍然主要在他们习以为常的中央主分支机构工作。

答案 3 :(得分:0)

如果复杂性对您来说是一个问题,那么请将Mercurial视为GIT的替代品。

GIT和Mercurial使用等效的分布式VCS模型,但Mercurial往往更容易使用,并且不会向用户暴露尽可能多的底层复杂性。

查看此问题的答案What is the Difference Between Mercurial and Git?