git操作,变基

 nadia     2022-07-04     692     0   

欢迎来到银盒子的世界~

之前面试被问到这个问题,当时没回答出来。现在有时间就整理一下。

先贴一下官方的说明文档:https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA

变基其实也是用来做分支合并操作的,我们常用的合并是这个→merge,变基是这个→rebase。

合并的话,比如现在有master分支,现在的版本是C2,你基于C2开始进行开发,同时有另外一个人,也基于C2开发,并且人家先提交还推送了,人家的是C3,等到你要推送的时候,就会报错,提示你版本落后之类的,那你就需要先本地提交一个C4,然后拉一下仓库的代码,合并一下,生成C5,此时才能推送到仓库里。也就是如下图所示:

图片.png

变基,等于给上边这个提交记录,做一下整形和美化,让它呈现出来的提交记录是优美的一条直线。还是上边的例子,比如现在有master分支,现在的版本是C2,你基于C2开始进行开发,同时有另外一个人,也基于C2开发,并且人家先提交还推送了,人家的是C3,此刻,你把你分支上的C4,变基到master分支上,此刻,你基于C2开发的代码,就变成基于C3进行开发的,此时,就不存在分叉了,看过去就是很流畅的一整条提交记录。如下图所示:

图片.png

但是变基的使用,还是有一定限时的,超出这个范围用,就会有一些尴尬的问题。

当没有第三个人,基于C3开了新分支进行开发的时候,你可以使用变基,要是有更多的人,基于C3开发出了C6,甚至还有更多人,基于C6开发了C7,C8,这个时候,就别用变基了,老老实实用合并吧。

发表评论