如何在循环工作流中共享先前版本和当前工作之间的修复?

How to share a fix between previous releases and current work in the cycle workflow?

我想知道我应该走哪条路线,是选择 cherry-pick 还是其他路线?

我有这个分支树:

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

所以 WorkInProgressMaster 分支出来,当 WorkInProgress 是 "done" 时,我从 "Pull Request" 到 Master,然后我从 Master 分支到一个新分支并将其命名为 ReleaseX

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

我的问题有两个案例:

Cherry-Pick 是正确的选择吗?

这种分支结构是我只在你必须同时维护 ReleaseX 和 ReleaseY 时才推荐的(如果你这样做,祝你好运)

在这种情况下,我建议在首先发现它的 Release 分支上修复该错误(在您合并回的单独的修补程序分支中)。然后挑选那些提交到其他发布分支。

通常我喜欢避免挑选,因为它很难跟踪重复的提交,但该操作比修改已共享并标记为发布的历史记录(变基)提交更好。