有人可以建议一个简单的git分支模式用于网站开发。我已经看过几个关于成功的git分支模型的讨论,遗憾的是它们对于我们的案例来说都非常复杂。大多数分支模型适用于具有版本和发布周期的软件。
我们公司管理多个门户网站。我们有5人在这些网站上工作。大多数情况下,2-3人可能在同一个网站上工作,但在不同的部分(冲突的可能性几乎为零)。我们没有任何版本或发布周期。程序员将开发一个特定的部分,之后它将被传递给另一个人,他将为该部分编写内容并执行SEO。完成后,该部分将上传到公共网站。与此同时,另一位程序员可能正在更新现有部分。如果报告了错误或错误,将立即修复并上传。
通常,每周会添加/更新2-3个新部分。
目前我们只有一个分支(主)并且只有当这个人正在进行大变更时才会创建一个新的分支,这将需要超过2周才能完成。这里的问题是主分支与当前生产文件不同步。我想改变它并将开发移动到另一个分支,以便可以直接在主分支上应用错误修复而不用担心。
更新的 为每个部分创建一个单独的分支是不是很糟糕?换句话说,多少分支被认为太多了?
答案 0 :(得分:2)
对我来说,你真正需要的是改进你的工作模式和流程。 Git不是流程问题的答案,它只是一个应该支持您选择的流程的工具。
即使您声称自己没有发布周期,但仍然有发行版:至少生产中的正在运行的副本应被视为发行版/版本。如果从质量保证/测试的角度来看,没有什么能阻止你每周产生10个版本。
有一点想法:
对于它的价值,我认为您描述了这样的模型: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往往更容易使用,并且不会向用户暴露尽可能多的底层复杂性。