git rebase 用来改变一串提交,以什么为基础的问题git
其实际的意义就是为了保持正在开发的分支中的提交,相对于另外一个分支代码,是最新的shell
如今有两个分支,topic分支是基于master中的B提交点独立出来的,若是我如今想要让topic的分支基点变为E,就能够使用vim
git checkout topic git rebase master 或者 git rebase master topic
若是要把feature分支,移到master的E节点时微信
git rebse --onto master maint^ feature
若是过程当中存在冲突问题,rebase会临时挂起,等你解决完冲突后,使用
git rebase --continue
进行接下的操做,若是以为冲突没有修改必要,能够git rebase --skip
,若是过程当中后悔了,则git rebse --abort
终止操做spa
接下来讲说git rebase -i
code
有时候,咱们会存在,想修改提交的顺序,或者删除某个提交之类的操做时,rebase -i
就派上用了blog
//master~3就是一个范围 git rebase -i master~3
执行上面的语句会获得,下面相似的内容图片
pick aced9f3 远程2 pick 532a39d 远程3 pick 852da65 rebse
能够在vim中,更改这三行的数据的前后顺序,来实现提交的前后顺序,好比ip
pick 852da65 rebse pick aced9f3 远程2 pick 532a39d 远程3
使用:wq
保存退出开发
若是想要实现某两个提交节点,合二为一
pick 852da65 rebse squash aced9f3 远程2 pick 532a39d 远程3
第二个提交节点会合并到第一个提交中去
这个其实能够运用到开发的场景中,咱们时常存在提交代码的时候,与远程代码库存在冲突,在merge以后会生成一个merge的提交点,若是你是强迫症患者,确定是不容许的,这个时候你使用rebase就能解决你的烦恼了。
更多技术相关的和话题请关注公众微信号【APPZone】
私下交流请关注的新浪微博@迹_Jason