当前位置 : 主页 > 手机开发 > 无线 >

如何将分支中的提交移动到GIT中的另一个新分支?

来源:互联网 收集:自由互联 发布时间:2021-06-10
我为我的工作开发了git branch,我创建了一个名为feature1的新分支,并提交了1,2,3和4. 我需要将commit 3,4从feature1分支移动到新创建的分支feature2. 应该从feature1中删除提交3,4并将其添加到新的分
我为我的工作开发了git branch,我创建了一个名为feature1的新分支,并提交了1,2,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]

你将处于一个干净的工作状态.

网友评论