我已经发展的Git分支对我的工作,我创建了一个名为特征1并取得承诺1,2,3和4如何将分支中的提交移动到GIT中的另一个新分支?
我需要摆脱特征1提交3,4新的分支分支到新创建的分支特征2。
的承诺3,4-应从特征1被删除,并加入到一个新的分支特点2,所以最后的结果应该是这样的特征1 与 1,和2个分支并特征2 3和4.
请注意,此刻我有开发和功能1分支机构。 功能2尚未添加。
实现该目标的最佳方法是什么?我尝试了git樱桃选择,但要确保最好的方式来做到这一点。
我已经发展的Git分支对我的工作,我创建了一个名为特征1并取得承诺1,2,3和4如何将分支中的提交移动到GIT中的另一个新分支?
我需要摆脱特征1提交3,4新的分支分支到新创建的分支特征2。
的承诺3,4-应从特征1被删除,并加入到一个新的分支特点2,所以最后的结果应该是这样的特征1 与 1,和2个分支并特征2 3和4.
请注意,此刻我有开发和功能1分支机构。 功能2尚未添加。
实现该目标的最佳方法是什么?我尝试了git樱桃选择,但要确保最好的方式来做到这一点。
如果我正确理解你的描述,你的回购目前看起来是这样的,
... -- 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]
,你会在清洁的工作状态。
谢谢@Jubobs,现在似乎在工作。干杯。 – 2014-09-24 19:03:14
很好解释。 – pjmorse 2014-09-25 12:46:17
你打算在哪里创建'branch2'?在哪个提交? – Jubobs 2014-09-24 18:31:08
我想从* develop *分支创建branch2(* feature2 *)并添加来自* feature1 *的提交3,4。 – 2014-09-24 18:32:33