GitFlow:正确测试发行分支&主

时间:2015-11-03 22:48:47

标签: git github merge git-flow

我一直在git中寻找一个好的分支模型,发现GitFlow非常适合我们的开发环境。但是,一个悬而未决的问题是如何以及在何处测试我们的版本。

释放分支听起来像是在发布之前运行所有回归测试的地方。然而,发布分支然后合并到master,tagged,这就是最终生产的东西。如果从发布分支到主服务器之间存在合并冲突,会发生什么?听起来像主人需要完全重新测试(这可能是昂贵的)。即使没有冲突,简单地将该合并推送到生产是否安全,或者是否需要进行额外的基本烟雾测试?

2 个答案:

答案 0 :(得分:3)

在仔细跟踪GitFlow图表之后,我确信自己在合并到master中时应该从不是任何冲突(即如果严格遵循该过程)。原因是因为时间表:

  1. 开发分支是从Master
  2. 创建的
  3. 功能已在Develop分支
  4. 上提交
  5. 创建了Release分支(包括目前为止所有来自Develop的提交)
  6. 错误已在发布分支中修复
  7. 准备好后,Release分支将合并为Master
  8. Master必须包含Develop + Release分支的所有提交。冲突不应该发生,因为在创建开发分支之后没有对Master进行任何操作(这是冲突发生的唯一方式)。此外,此时的代码应与Release分支上的最新提交相同,这意味着无需进行其他测试。
  9. 我简化了GitFlow图表以说服自己:

    enter image description here

答案 1 :(得分:0)

我认为应该在发布的每个阶段进行测试。创建一个轻量级的发布测试,您可以直接针对生产运行,以至少测试基本功能。当然,不要加载/进行生产测试。

根据您的产品以及如何推出产品,实际测试可能会发生变化。我们有一些生产服务器,我们部署了新的发布代码。这些服务器经过彻底测试,但我们的客户无法访问。当这些签出时,我们将其与其他生产服务器交换出来。重复部署和测试。一切都过后,所有生产服务器都会被放回到面向客户的服务器的实时池中。

如果出现故障,我们会以同样的方式回滚。