cherry-pick

该方法可以用于将一个分支的提交在另一个分支复现一遍。
举个例子,当不小心在test分支上编写了新功能,并commit后,虽然新功能无误,但是自己的工作分支mywork却没有新功能,则此时可以采用cherry-pick方法.即首先查出在test分支上提交新功能的commit版本号,然后checkout到mywork分支,然后使用git cherry-pick <commit版本号>.来将新功能添加进test分支即可.原理如下图:

  • test上添加新功能:
    git cherry-pick 和 rebase
  • 使用cherry-pick后的分支情况:
    git cherry-pick 和 rebase
    这样就至少可以保证不用采用merge带来的分支丢失.

rebase

使用rebase操作,可以把当前分支的改动全部加入到目标分支当中,具体的图示关系如下:
使用rebase之前:
git cherry-pick 和 rebase
使用git checkout mywork;git rebase test后,状态如下图所示:
git cherry-pick 和 rebase

相关文章: