cherry-pick
该方法可以用于将一个分支的提交在另一个分支复现一遍。
举个例子,当不小心在test分支上编写了新功能,并commit后,虽然新功能无误,但是自己的工作分支mywork却没有新功能,则此时可以采用cherry-pick
方法.即首先查出在test分支上提交新功能的commit版本号,然后checkout到mywork分支,然后使用git cherry-pick <commit版本号>
.来将新功能添加进test分支即可.原理如下图:
- test上添加新功能:
- 使用cherry-pick后的分支情况:
这样就至少可以保证不用采用merge带来的分支丢失.
rebase
使用rebase操作,可以把当前分支的改动全部加入到目标分支当中,具体的图示关系如下:
使用rebase之前:
使用git checkout mywork
;git rebase test
后,状态如下图所示: