git merge与git rebase区别

作用都是将一个分支整合到另一个分支。
差异: git merge是进行三方合并;git rebase是先更新“base”,再将当前分支的差异补丁重新打上去。

git merge 合并

工作原理: 将两个分支最新的快照以及二者的共同祖先进行三方合并。

在这里插入图片描述

git rebase 衍合

工作原理: 回到两个分支的共同祖先,提取所在分支每次提交时产生的差异,将这些差异分别保存到临时文件里,然后从当前分支转换到你需要衍合的分支,依序施用每一个差异补丁文件。
【可以理解为,先保存当前分支的差异补丁,然后更新base为新的base,再将保存的差异补丁施用到新的base上,base理解为分支的共同部分】

在这里插入图片描述

优点: 可以产生更为整洁的提交历史
缺点: 在衍合的时候,实际上抛弃了一些现存的 commit 而创造了一些类似但不同的新 commit。会影响那些基于现存commit的分支。

永远不要衍合那些已经推送到公共仓库的更新。

如果把衍合当成一种在推送之前清理提交历史的手段,而且仅仅衍合那些永远不会公开的
commit,那就不会有任何问题。如果衍合那些已经公开的 commit,而与此同时其他人已经
用这些 commit 进行了后续的开发工作,那你有得麻烦了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值