假设我有 2 个平行的长寿分支:master
和experimental
. 我在 的一个主题分支上做了一些工作experimental
,我为几个特性(、、、)做feature1
这feature2
件事feature3
。我将如何将完成的工作移植feature2
到master
?
我的初始存储库:
master
|
A-B-C
\
D-E I L P
\ / \ / \ /|
F-G-H \ / \ / |
| J-K \ / experimental
feature1 | M-N-O
feature2 |
feature3
我想要的存储库:
master
|
A-B-C-----------------------------J'-K'
\
D-E I L P
\ / \ / \ /|
F-G-H \ / \ / |
| J-K \ / experimental
feature1 | M-N-O
feature2 |
feature3
我能想到的一种方法是,git checkout master; git cherry-pick J K
但这很容易出错,并且主题分支可能有许多不同的提交。
我希望它能够工作git checkout master; git <transplant-commits-in-topic-branch-onto-current-branch> feature2
,但是我熟悉的所有变基命令都移植了来自共同祖先的所有差异(在这种情况下A
),我只想移植和之间的差异I
,K
而不是弄乱提交哈希.
一点上下文:我正在开发一个从原始代码库中分叉出来的代码库,但是我想贡献某些功能。我在主题分支中开发了所有新功能,然后我将它们合并回我的主人。