2010-09-13 208 views
1

这是我目前的回购。Git合并中间提交的分支

Z(master)---A---B---C---D(branch A) 
      \ 
      ---E---F(branch B) 

我想合并提交A到主,谁能告诉如何做到这一点?

(期望的)

Z---A(master)---B---C---D(branch A) 
    \ 
     ---E---F(branch B) 

编辑:

碱的预先从分支B到B是我的拼写错误。请忽略它。抱歉让人困惑!即使我仍然学习一个技巧。

回答

2

如果Z是最后一次提交的master,一个简单的git merge SHA1(A)将快进主头A

然而,推进branchB的B开始(我知道,那是你的问题一个错字),你将需要:

git branch tmp SHA(B) 
git checkout branchB 
git rebase tmp 
2

我想,只是想:

git reset master A 

但只,如果结构是一样的部份>

<old>---Z<master>A---B---C---D<A> 
         \ 
         \ 
         \ 
         E---F<B> 

之后是这样的:

<old>---Z---A<master>B---C---D<A> 
         \ 
         \ 
         \ 
         E---F<B> 

其他地方,请纠正你的树。

1

您可以使用 git合并将新更改合并到分支中。所以,当你有签出

 
$ git checkout master 

您只需合并

 
$ git merge B 

对于上面,只需使用的散列提交,或用A〜3或类似的命名。

这将快进包括所有提交到 B