【问题标题】:Git branching efficient workflowGit 分支高效工作流程
【发布时间】:2021-04-16 18:27:14
【问题描述】:

这是我公司的发布流程。我就是想看看能不能优化一下。

  1. 有四个分支,
  • TeamA - 团队 A 成员所做的所有更改都在此处。它被部署到 TeamA QA 盒子。
  • TeamB - Team B 所做的所有更改都在此处进行。它被部署到 TeamB QA 盒子。
  • 发布 - 来自 TeamA 和 TeamB 分支的更改位于此处。这将部署到 UAT 盒子。
  • Main - 一旦发布分支部署到生产,它就会合并到 main。
  1. 这是 TeamA 开发人员的典型开发工作流程。
  • 从 TeamA 创建一个 Feature/Bug 分支并推送更改。
  • QA 团队在 QA 框中对其进行测试并签署。
  • 当发布时间到来时,开发人员从发布分支创建另一个功能/错误分支并推送更改(手动)。因为 TeamA 分支会有很多其他的变化。

如您所见,开发人员在两个不同的分支上执行了两次“分支和推送”。由于是手动步骤,因此无法保证开发人员在两个步骤中都推送相同的更改。

我们如何避免开发人员重复执行相同的步骤?

【问题讨论】:

    标签: git continuous-integration


    【解决方案1】:

    废弃 TeamA 和 TeamB 分支;它们比没用更糟糕。

    对每个更改进行两次测试的想法很有意义:

    • 第一次是单独进行测试,因此如果出现问题,您不必取消选择合并。
    • 第二次,您正在测试即将发布的组合,以确保修复不会产生不良影响。

    在您的工作流程中,TeamA 和 Release 分支都有更改组合,但它们有不同的组合。在 TeamA 分支上进行的任何测试都是针对永远不会发布的代码版本。此时任何测试失败都需要恢复该更改,然后重新测试不同的更改组合,这些组合也不会发布。

    所以我的建议是放弃 TeamA 和 TeamB 分支,让 QA 检查各个任务分支以进行初始测试。

    【讨论】:

    • 感谢 IMSoP。所以,我从你的观点理解,没有办法避免这种重复的努力。对于小的变化,这没什么大不了的。但是,对于需要更改大量文件的大型项目,重复执行两次将是一项巨大的工作,而且很容易出错。
    • @NepzSolutions 我很可能错过了你从 TeamA 和 TeamB 分支中获得的优势,但我认为你最好只任务分支(可以在 QA 环境中单独测试)和单个发布分支(将在 UAT 中测试)。
    猜你喜欢
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2016-05-23
    • 2019-10-26
    • 2015-07-02
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    相关资源
    最近更新 更多