我认为我有一个特殊的情况。我们组织遵循标准的git流程,除了发布分支需要一些时间才能准备好合并回主分支和开发分支。
我们曾经阻止所有功能分支合并到开发分支,直到发布分支合并回主分支和开发分支。然而,随着团队规模的增长,这变得不可接受。因此,我们希望允许开发人员在发布分支合并之前继续将其功能分支合并回开发分支。
现在问题出现在最终合并发布分支的时候。假设在发布r1之前,f1和f2是在开发分支上。从那时起,f3和f4已经合并回开发分支。现在,如果我们合并发布分支r1,开发分支的时间轴如下:
这意味着当下一个版本r2发布时,提交历史记录将包括r1、f4和f3。某些情况下这并不正确。
然而,如果我们在发布分支活动期间阻止合并到develop分支,它看起来会更有组织性,发布提交将出现在它应该出现的地方:
我们曾经阻止所有功能分支合并到开发分支,直到发布分支合并回主分支和开发分支。然而,随着团队规模的增长,这变得不可接受。因此,我们希望允许开发人员在发布分支合并之前继续将其功能分支合并回开发分支。
现在问题出现在最终合并发布分支的时候。假设在发布r1之前,f1和f2是在开发分支上。从那时起,f3和f4已经合并回开发分支。现在,如果我们合并发布分支r1,开发分支的时间轴如下:
Merge commit of r1
Merge commit of f4
Merge commit of f3
Merge commit of f2
Merge commit of f1
这意味着当下一个版本r2发布时,提交历史记录将包括r1、f4和f3。某些情况下这并不正确。
然而,如果我们在发布分支活动期间阻止合并到develop分支,它看起来会更有组织性,发布提交将出现在它应该出现的地方:
Merge commit of f4
Merge commit of f3
Merge commit of r1
Merge commit of f2
Merge commit of f1
我有哪些选择呢?我不想对develop分支进行交互式的变基,以便重新排序提交记录,因为这样会强制推送到develop分支(有点吓人!)。