最简单的git图解(git rebase)

今天我们来讲解下git rebase命令,以及git rebase命令与git merge命令的区别。

git rebase图解:

假设我们目前有master、demo两个分支,而且demo分支上从master分支上切出来的:

从上图中可以看到,我们从C2提交点切出来了demo分支,同时master分支上有了新的提交C4,同时demo分支上也有两个新的提交:C3和C5。此时我们执行下面两条命令: 

git checkout demo         #先切换到demo分支

git rebase master          #将demo分支进行“变基”处理

这样做之后便会成为下面这个样子:

 可以看到对demo分支进行“变基”处理之后,相当于是把demo分支嫁接到了master分支的最新的提交C4上,demo分支上特有的提交C3和C5会在C4之后。

merge命令图解:

还是假设我们现在有master、demo两个分支,demo分支是从master分支上的C2提交点切出来的:

 此时我们执行以下命令:

git checkout master        

git merge demo

就会将demo分支合并到master分支,同时会生成一个merge提交:C7:

而最终master分支长这样:

可以看到,demo分支上的所有提交点都到了master分支上,而且所有提交点都按照提交时间在master上进行了顺序排列。

git rebase vs git merge:

git rebase branchA 是对当前分支进行“变基”处理,基点就是branchA分支的最新提交;

git merge branchA 是将branchA分支上的提交合并到当前分支上;

git rebase之后,当前分支的历史就变了,比如本来是从C2点切出来的,变基之后,就变成了从C4点切出来了。而git merge之后,不会改变提交历史,而且所有提交点还是会按照提交时间顺序排列在分支上,但是会有一个merge提交,如上图中的C7提交。

所以,如果想保留完整的git提交历史记录,建议还是使用git merge。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值