2011-11-22 78 views
218

我创建了一个新的分支名为newbranchmaster分支在git中。现在我已经完成了一些工作并想合并newbranchmaster;但是,我已对newbranch进行了一些额外的更改,并且我想合并newbranch,直到上一次提交的第四次提交到master合并到一个特定的提交

我用cherry-pick,但它显示的使用权选项消息:

git checkout master  
git cherry-pick ^^^^HEAD newbranch 

我可以使用git merge做到这一点呢?

git merge newbranch <commitid> 

回答

378

当然,在master分公司所有你需要做的是就是:

git merge <commit-id> 

其中commit-id是最后的哈希从您希望在master分公司获得newbranch提交。

你可以通过做git help <command>了解更多关于git命令的信息。那个案子是git help merge。并且文档说merge命令的最后一个参数是<commit>...,所以您可以将引用传递给任何提交或甚至多个提交。尽管如此,我从来没有做过后者。

+12

不仅仅是一次提交,而是所有提交'commit-id'之前的提交。 – Dau

+31

是的,它将自'newbranch'所有提交到'''''commit-id'之后的所有提交合并为'master'分支。你可以将'git merge '想象成合并一些以'commit-id'结尾的未命名分支到你当前的分支。 –

+0

我可以使用提交ID来合并除主站之外的两个本地分支吗? – skt

2

要保持清洁分支,你可以这样做:

git checkout newbranch 
git branch newbranch2 
git reset --hard <commit Id> # the commit at which you want to merge 
git checkout master 
git merge newbranch 
git checkout newbranch2 

这样,newbranch将结束它被合并到主,和你继续newbranch2工作。

相关问题