我为我的工作开发了git branch,我创建了一个名为feature1的新分支,并提交了1,2,3和4. 我需要将commit 3,4从feature1分支移动到新创建的分支feature2. 应该从feature1中删除提交3,4并将其添加到新的分
我需要将commit 3,4从feature1分支移动到新创建的分支feature2.
应该从feature1中删除提交3,4并将其添加到新的分支feature2,因此最终结果应该是feature1 with 1和2 branch以及feature2 with 3和4.
请注意,目前我已开发并设有1个分支机构. feature2尚未添加.
实现这一目标的最佳方法是什么?我试过git cherry-pick但是想确保最好的方法.
如果我理解你的描述正确,你的回购目前看起来像这样,... -- o [develop] \ 1 -- 2 -- 3 -- 4 [feature1]
而你希望它看起来像那样
3'-- 4'[feature2] / ... -- o [develop] \ 1 -- 2 [feature1]
正确?如果是这样,请执行以下操作.
首先,确保您处于干净的工作状态.然后,创建并签出一个名为feature2的分支,该分支指向与develop相同的提交:
git checkout -b feature2 develop
您的回购将如下所示.
... -- o [HEAD=feature2,develop] \ 1 -- 2 -- 3 -- 4 [feature1]
樱桃选择两个感兴趣的提交(3和4):
git cherry-pick <commit-ID-of-3> <commit-ID-of-4>
之后,您的仓库将如下所示.
3'-- 4'[HEAD=feature2] / ... -- o [develop] \ 1 -- 2 -- 3 -- 4 [feature1]
最后,检查你的feature1分支并将其重置为两次提交:
git checkout feature1 git reset --hard HEAD~2
您的回购将按预期结束,
3'-- 4'[feature2] / ... -- o [develop] \ 1 -- 2 [HEAD=feature1]
你将处于一个干净的工作状态.