如何将一个分支合并到一个变化很大并且几年没有合并的分支
Posted
技术标签:
【中文标题】如何将一个分支合并到一个变化很大并且几年没有合并的分支【英文标题】:how to merge a branch to a branch that changed a lot and were not merge for a couple years 【发布时间】:2021-12-05 09:47:24 【问题描述】:分支机构:
dev: 我的主要分支 实验性: 4 年前从 dev 中分离出来。 feature1: 从 6 个月前的实验中分离出来现在我需要 feature1 的功能,但我不需要其他实验功能。如何将提交从 feature1 分支移动到 dev 但不合并它,会导致很多冲突? feature1 实验性的提交大约有 400 个提交,dev 和 experimental 有大约 3000 个提交。
【问题讨论】:
【参考方案1】:和往常一样,让我们从可视化情况开始:
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
(不包括)的父级和C
(包括)在dev
之上的提交范围。换句话说,提交A
、B
和C
:
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)
请注意,您仍然必须解决 A
、B
和 C
和 dev
中包含的更改之间的任何冲突。但是,它不会像您尝试将 feature1
合并到 dev
一样多。
【讨论】:
以上是关于如何将一个分支合并到一个变化很大并且几年没有合并的分支的主要内容,如果未能解决你的问题,请参考以下文章