代码之家  ›  专栏  ›  技术社区  ›  Eugene Morozov

推荐的git工作流允许独立部署功能

  •  1
  • Eugene Morozov  · 技术社区  · 8 年前

    在我们的组织中,我们目前使用以下流程。 enter image description here

    特性分支从生产分支分叉。特性在开发人员机器上的特性分支中实现。然后将特征分支合并到 develop 自动部署在登台服务器上的分支。

    此功能由登台服务器上的用户测试,如果业务部门认为它是好的,并且是时候将其部署到实时服务器上,则将第二次合并功能分支,这次合并到 production 然后部署在生产服务器上的分支。

    但由于种种原因,有些功能被放弃了。例如,业务部门认为现在还没有时间将该功能部署到live服务器。或者也许不再需要了。或者我们一年后再谈。在我的照片上 feature/1 从未融入 生产 分支但合并为 发展 分支。

    这意味着 发展 分支越来越偏离 生产 分支。请注意 发展 是 从未 合并到 生产 (在规范git流中, 发展 合并到 生产 通过使用 release 分支机构)。

    在我看来,这个工作流程需要大量的体力劳动。因为 生产 和 发展 是不同的,当要素分支合并到 发展 为了测试。这也很容易出错,因为我们在 发展 那永远不会消失。它不仅使合并变得复杂,而且还意味着特性分支代码在 发展 和 生产 分支,因为旧的未合并代码会影响功能代码。

    而且,我有一种感觉,随着每一个新特性的出现,这将使工作变得越来越复杂,因为 发展 和 生产 将不可避免地增长。在流动中没有一点 发展 和 生产 是一致的,所以我担心一年后,也许10000+提交之后,合并将变得太复杂,无法处理。即使现在我们有合并错误。有些很明显,有些很微妙,很难找到。

    我已经多次向CTO提出这个问题,即这个流程本身效率低下,而且容易出错。但他坚持认为,这个流程是最优的,因为它允许业务选择何时将功能部署到生产中。此外,他还声称,他在大公司以前的工作中使用了完全相同的流程。

    我也有很多经验,但我从未见过这样的流量,我也从未在书或博客文章中读到过这样的流量。

    我有两个问题:

    1. 是这样的流动(在 发展 和 生产 是否经常出现分歧)是否确实用于大型团队?
    2. 如果我认为它充其量是次优的,那么说服CTO迁移到更好的流(例如,规范的git流)的最佳方法是什么?
    1 回复  |  直到 8 年前
        1
  •  1
  •   VonC    8 年前

    集成的最佳工作流 或删除 功能在集成中随意分支,然后主分支是:

    gitworflow (最初于2017年提交 Handle git branching for test and production ")

    它是用来 repo Git itself .
    其特点:

    • 它在每个新的发布周期重置staging/dev/testing分支,使 短暂的分枝 (即销毁/重建)
    • 它将功能分支合并到那些分支(而不是从开发到测试再到登台的合并)
    推荐文章