Git Merge Branch还原工作流程

时间:2015-05-27 00:23:26

标签: git

这是我们的情景:

开发人员将Master分成一个新的分支并开发一些代码。大师进步。当它通过QA并合并到Master中时,将运行完整的回归测试。有时,一个分支(其中一个分支被合并/测试发布)无法回归。因此,我们希望还原该合并并继续释放其余代码。通常情况下,只需要在原始开发中调整一些内容,QA再次进行调整,然后重新进入master,但由于Master恢复了更改,因此大多数分支更改都会被删除。在进行更正后如何最好地将此dev分支重新合并为master,而不会因为还原而丢失更改?

2 个答案:

答案 0 :(得分:1)

从表面上看,这听起来就像是在工作流程中使用了不正确的恢复。

为避免这种情况,如果master已超出分支,则应将master合并到分支中,而不是相反。

所以:

  • 发展分支。
  • 当开发完成并且回归测试通过时:
    • 将master合并到分支(NOT分支到master)
    • 在分支中运行回归测试
    • 解决分支中的任何失败
    • 测试通过时:
      • 如果自合并后主人已更改回主人,请冲洗并重复(重新合并主人与分支,重新测试,重新解决)。
      • 否则,将分支合并回主(快进)。

此工作流程避免了任何需要在任何时候恢复作为促销工作流程的一部分(开发人员可能仍需要不时在其开发分支中恢复)。

您永远不需要将合并从主设备还原到分支机构,因为要将更改接受到主设备,它们必须在首先到达主设备之前通过测试。因此,合并到您的分支中的任何失败都需要在该分支中解决,然后才能被接受回主分区。

答案 1 :(得分:0)

git不会合并之前已经合并的任何提交。由于提交仍然是主人的历史(但后来提交还原)git不会再次应用它们。解决方案是:

  1. Revert the revert:只需git revert还原更改的提交。
  2. 或(更好的解决方案):

    1. 定期或准备好时将 master合并到您的功能分支
      • 如果所有测试都通过:好的,将它合并到master(应该是快进)
      • 否则,您需要做些什么来解决问题。