标签:
网上由很多关于该命令的文章,但是千篇一律的复制粘贴,虽然本身的内容已经说得十分完整,但是只有一两种解释难免会使得某些地方理解不透彻或者某些地方的理解会有偏差,因此在这里写下一些自己的学习心得。
git rebase
这个命令在一开始的时候看了很多图解,知道是将某些变更重做一遍,但是在真正使用过程中会遇到一些问题从而导致没法继续使用,原因在于没有真正理解其含义。
git rebase的rebase其实可以硬将它翻译成变基(一开始觉得很别扭为什么这样翻译,但是当真的理解后才发现这样翻译的意图),即将你的git的commit流程的base进行变更,即本来你的这些commit是基于本地分支的末端,rebase把这几个commit改成基于目的分支的末端节点
a->b->c(work分支)
a->d->e(origin分支)
要获得a->d->e->b->c(work分支)
git checkout work
git rebase origin
意思就是本来你的这些commit是基于a的,然后用rebase命令将当前work分支的b、c提交修改成基于e
PS:rebase的过程中自然会有冲突的发生,这时候需要做的就是将冲突解决,解决后继续rebase --continue,或者是放弃rebase、跳过等等操作
标签:
原文地址:http://www.cnblogs.com/toufu/p/4434991.html