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 和稳定版中完全相同,并且修复看起来也完全相同。
将相同更改应用于两个不同分支的最佳方法是什么?修复一个,然后挑选?或者有更好的解决方案吗?
由于合并(merge
到 stable
)是不可能的(dev 太大),所以你只剩下 cherry-picking.
(在 master
中修复,在 stable
中挑选)
唯一的问题是它 introduces a duplicate commit,这可能(或不会)使将来从 master
到 stable
的合并复杂化。
cherry-pick 的问题在于您在两次提交之间没有明确的 link,这违背了跟踪更改的目的。只需进行合并:
- 找到
master
和 stable
的合适共同祖先 X
- 在提交
X
时创建并切换到名为 fix_bug2
的分支
- 修复错误,提交
- 将
fix_bug2
合并到stable
- 将
fix_bug2
合并到master
[相关话题好像有很多类似的资料,但是还是找不到答案]
假设我们有两个不同的分支:stable 和 master(目标是成为下一个 stable):
----> split --> fix 1 --> [stable]
\
---> development --> more development ----> [master]
分支分歧,例如,因为 fix 1 在 master 中的完成方式不同,因为一些开发提出了更好的方法(但开发本身的范围太大,无法将其合并到稳定分支中)。
现在我们有另一个错误 2,我们需要修复 2。虽然分支已经分叉,但受影响的文件在 master 和稳定版中完全相同,并且修复看起来也完全相同。
将相同更改应用于两个不同分支的最佳方法是什么?修复一个,然后挑选?或者有更好的解决方案吗?
由于合并(merge
到 stable
)是不可能的(dev 太大),所以你只剩下 cherry-picking.
(在 master
中修复,在 stable
中挑选)
唯一的问题是它 introduces a duplicate commit,这可能(或不会)使将来从 master
到 stable
的合并复杂化。
cherry-pick 的问题在于您在两次提交之间没有明确的 link,这违背了跟踪更改的目的。只需进行合并:
- 找到
master
和stable
的合适共同祖先 - 在提交
X
时创建并切换到名为 - 修复错误,提交
- 将
fix_bug2
合并到stable
- 将
fix_bug2
合并到master
X
fix_bug2
的分支