需求:有些时候,我们希望只合并某个分支上的某次修改,commit到指定分支上,那我们可以通过 cherry-pick 来实现。
这里以下面的例子来讲解。
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
\
76cada - 62ecb3 - b886a0 [feature]
git log 查看提交的信息,记住commit id。
合并单个commit
我们需要将 feature 62ecb3 合并到master上
git checkout master
git cherry-pick 62ecb3
合并某个分支上一系列commit
在有些情况下,我们需要某个分支上一系列commits合并到master上。对于这种情况cherry-pick就不太满足,使用rebase就可以达到效果。
接上面的例子,你想将feature中的commit 76cada到62ecb3合并到master.
首先需要在feature上面创建一个新的分支,以你最后的提交为结点,这里以62ecb3.
git checkout -b newbranch 62ecb3
下一步,需要rebase新的分支commit --onto master上. 76cada表示,这次commit从哪里开始。
git rebase --onto master 76cada^
from https://www.devroom.io/2010/06/10/cherry-picking-specific-commits-from-another-branch/
网友评论