如何在周期工作流程中的先前版本和当前工作之间共享修补程序?

时间:2018-07-30 14:03:52

标签: git git-branch git-merge git-rebase git-cherry-pick

我想知道我应该走哪条路线,摘樱桃还是其他?

我有这个分支树:

          ReleaseX
       ^
      /
Master --> ReleaseY
   |
   V
WorkInProgress
   |        |        
   V        V
FeatureX  FeatureY    .. etc

因此WorkInProgressMaster分支出来,并且当WorkInProgress被“完成”时,我从它向“ Master”执行“拉取请求”,然后分支Master到新分支并命名为ReleaseX

这使我能够支持发行版并分别在任何Release分支上进行热修复。

在这里我有两个问题要解决:

  • ReleaseX上进行修补,然后在ReleaseY上应用
  • ReleaseXReleaseY以及WorkInProgress做一个修补程序

Cherry-Pick是要走的路吗?

1 个答案:

答案 0 :(得分:1)

只有当您必须同时维护ReleaseX和ReleaseY时(如果您这样做,祝您好运),我才会建议您使用这种分支结构

在这种情况下,我建议修复在第一次发现它的Release分支上的错误(在单独的hotfix分支中,您将其合并回去)。然后挑选那些提交到其他Release分支。

通常,我喜欢避免选择樱桃,因为这样做会导致难以遵循重复的提交,但是此操作比修改已共享并标记为发布的历史记录(重新定级)要好。