Git 向不同分支添加相同功能的工作流

Git workflow to add the same functionality to diverged branches

[相关话题好像有很多类似的资料,但是还是找不到答案]

假设我们有两个不同的分支:stable 和 master(目标是成为下一个 stable):

----> split --> fix 1 -->  [stable]
         \
           ---> development --> more development ----> [master]

分支分歧,例如,因为 fix 1 在 master 中的完成方式不同,因为一些开发提出了更好的方法(但开发本身的范围太大,无法将其合并到稳定分支中)。

现在我们有另一个错误 2,我们需要修复 2。虽然分支已经分叉,但受影响的文件在 master 和稳定版中完全相同,并且修复看起来也完全相同。

将相同更改应用于两个不同分支的最佳方法是什么?修复一个,然后挑选?或者有更好的解决方案吗?

由于合并(mergestable)是不可能的(dev 太大),所以你只剩下 cherry-picking.
(在 master 中修复,在 stable 中挑选)

唯一的问题是它 introduces a duplicate commit,这可能(或不会)使将来从 masterstable 的合并复杂化。

cherry-pick 的问题在于您在两次提交之间没有明确的 link,这违背了跟踪更改的目的。只需进行合并:

  1. 找到 masterstable
  2. 的合适共同祖先 X
  3. 在提交 X
  4. 时创建并切换到名为 fix_bug2 的分支
  5. 修复错误,提交
  6. fix_bug2合并到stable
  7. fix_bug2合并到master