Git分支演进-重定基底 rebase

此为Pro Git读书笔记,博文图片均转载自书中,但本文和Pro Git均为开放免费的,
未曾商业之用!

rebase翻译为“重定基底”,其和merge一样属于合并多个分支的操作,但是稍微有些不同。

这里有两个分支:
在这里插入图片描述

现在想合并这两个分支,假如没冲突,merge动作会新建一个节点,把C3和C4的改变都添加进去。

在这里插入图片描述

rebase既然是重定基底,那么就是改变原来的基,其实这里的基就是前驱节点的意思。
比如:C2的前驱节点是C1,C1是被箭头指向的节点,代表C2C1的基础上工作。

那么能不能将C4直接移动到C3的后面,不创建新的节点呢?当然可以,就是用rebase

在这里插入图片描述

接下来再直接合并分支experimentmaster,那么这个操作就是合并操作就是快速转发型的了。

rebase操作我认为一般不常用,不过其优点就是减少git log产生的日志比较好看,就好像经过串行开发过程留下的日志一样,可以从上图中看到。

但是rebase操作因为改变了节点的基,所以不要在分支上commit了几个节点到远程,然后再rebase。因为有可能你的工作会干扰别人的工作。一句两句说不清楚,具体参见上书。但是如
果不想过于复杂,又非常想很安全的使用rebase,那就遵循一个原则:

永远在本地使用rebase,然后清理掉被rebase的分支,这样git历史会相当清白

猜你喜欢

转载自blog.csdn.net/qq_33745102/article/details/85064155