2016-05-16 138 views
0

我有一个仓库在git中,我开始在一个新的分支开发一个功能。当中途完成时,我注意到了一个我不确定的错误。但是,我没有提交修补程序来掌握和重新设计开发分支,而是致力于开发分支。这已经发生了好几次,现在我意识到了我的错误。拆分分支在两个分支/合并分支有选择

我想对主服务器执行另一个修补程序,但该修复程序取决于以前的修补程序,并且由于存在大量未经测试的更改,因此无法完全合并开发分支。

所以,这里是我的问题:我如何才能合并包括修补程序的提交到master,同时将未经测试的提交保留在developement分支中?

更具体地说,我想合并的提交和我想保留在另一个分支中的提交是插入的。

从图形上看,我的回购协议是这样的,其中H是修补程序和d未经测试的提交:

devbranch  D1 - H1 - D2 - H2 
      /
master A - B 

而且我希望它看起来像这样:

devbranch    D1 - D2 
        /
master A - B - H1 - H2 

回答

1

樱桃挑选你想要的提交掌握,然后重新分配你的功能分支给新的主人。

git checkout master 
git cherry-pick H1 
git cherry-pick H2 
git checkout devbranch 
git rebase master 
+0

樱桃采摘会不会在devbranch留下H1和H2的副本? – Jsevillamol

+1

@Jevillamol:会的,但他们会在rebase中消失。 – choroba