git merge rebase

参考链接1
参考链接2
merge
在这里插入图片描述rebase
在这里插入图片描述
rebase,变基,可以直接理解为改变基底。C5分支是基于master分支的C2拉出来的分支,C5的基底是C2。而master在C2之后有新的提交,就相当于此时要用master上新的提交来作为C5分支的新基底。实际操作为把C2之后mywork的提交先暂存下来,然后删掉原来这些提交,再找到master的最新提交位置C4,把存下来的提交再接上去(接上去是逐个和新基底处理冲突的过程),如此mywork分支的基底就相当于变成了C4而不是原来的C2了。(注意,如果master上在C2以后没有新提交,那么就还是用原来的C2作为基,rebase操作相当于无效,此时和git merge就基本没区别了,差异只在于git merge会多一条记录Merge操作的提交记录)

rebase缺点:
往公共分支上合代码的时候,使用merge。如果使用rebase,那么其他开发人员想看主分支的历史,就不是原来的历史了,历史已经被你篡改了。举个例子解释下,比如张三和李四从共同的节点拉出来开发,张三先开发完提交了两次然后merge上去了,李四后来开发完如果rebase上去(注意李四需要切换到自己本地的主分支,假设先pull了张三的最新改动下来,然后执行<git rebase 李四的开发分支>,然后再git push到远端),则李四的新提交变成了张三的新提交的新基底,本来李四的提交是最新的,结果最新的提交显示反而是张三的,就乱套了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值