2016-09-03 63 views
0

我的主人最近三次提交:Git的最后两次提交隔离在两个分支

... -> C -> B -> A 

我想隔离B和A在两个不同的分支承诺,所以我想犯主的历史,和两个新的分支,像这样:

主:

... -> C 

分支-B:

... -> C -> B 

分支-A:

... -> C -> A 

我发现这样做的主,犯乙支路,但我不知道该怎么办了提交一个分支:

git checkout master 
git branch commit-A 
git reset --hard HEAD^ 
git branch commit-B // commit-B HEAD to commit B 
git reset --hard HEAD^^ // master HEAD to commit C 
git checkout commit-A 
??? // how to do like if commit B did not happen ? I don't like git revert because it adds a new commit. 
git push --all 

回答

2

最简单的方式是使用樱桃挑

GIT中结帐主//甲

git的结帐(SHA1 C)//你处于'分离头部'状态。

GIT中结帐-b branch_b //创建和选自C(父)

GIT中摘樱桃(B的SHA1)

git的结帐(C的SHA1)结帐branch_b //您在'脱离HEAD'状态。

GIT中结帐-b branch_a //创建和选自C(父)

GIT中摘樱桃(A的SHA1)

GIT中结帐主//甲

GIT中复位结帐branch_a - 难的HEAD〜2 //动脑子2款回

就是这样:)

+0

谢谢,这个摘樱桃命令正是w ^我需要的帽子! – sylvain1264