如何将一个分支合并为一个变化很大但几年内没有合并的分支



分支:

  • dev:我的主分支
  • 实验性:4年前从dev分离
  • 功能1:从6个月前的实验中分离

现在我需要feature1中的功能,但我不需要实验中的其他功能。如何将提交从feature1分支移动到dev,但不合并它,因为会有很多冲突?feature1实验中有大约400个提交,dev实验中有大约3000个差异。

一如既往,让我们从可视化情况开始:

o---o---o---o---o---o---o---o---o---o---o---o---o---o (dev)

o---o---o---o---o---o---o---o (experimental)

A---B---C (feature1)

feature1更改为dev的最简单方法是使用cherry-pick命令:

git switch dev
git cherry-pick A^..C

这将应用A的父级(不包括)和dev之上的C(包括)之间的提交范围。换句话说,提交ABC:

o---o---o---o---o---o---o---o---o---o---o---o---o---o---A'---B'---C' (dev)

o---o---o---o---o---o---o---o (experimental)

A---B---C (feature1)

请注意,您仍然需要解决ABCdev中包含的更改之间的任何冲突。然而,它不会像您尝试将feature1合并到dev那样多。

最新更新