git-merge和git-rebase的区别与联系

合并和变基

首先谈区别

区别就是:变基就是把其它分支最新提交历史库作为当前分支的基础,也就是从最开始那里截取当前分支直接接到要变基的分支上,于是,你个人的多个提交也就连续了起来,大家都在一条线上,只有短暂分支,但是仍然要处理冲突;

其次是联系

都是处理多人协同开发的方式,或者说多分支之间冲突的处理,本质上都是合并;
变基不要合并历史和多条线分支之间的交互,而合并则会记录这些合并。

不同的风格

使用合并还是变基取决于团队,绝大多数情况下,或者说默认的,大家都是使用合并,比如拉出分支写完代码测试没问题后提交之前要pull一下,防止把别人的代码覆盖,如果不强制pull,别人有提交的话也会被拒绝。

合并

这个pull默认就是合并,也就是把远程别人提交的代码合并到自己的本地提交之中,形成新的提交,在push到远程。
或者别人需要合并你的代码,远程分支之间相互合并,都是把其它分支最新的代码直接拉入自己的代码库之中。于是不得不处理其中的冲突,也就是大家都有改了的地方。
于是我们可以看见合并历史的眼花缭乱,最明显的一种情况就是合并来合并去的。
比如大家在dev分支上开发,开发完成合并到test分支。

变基

还有一种更新代码的方式就是变基,直接把提交之前的基础换成最新的,本地提交直接嫁接最新的代码上去,处理冲突之后,直接push到远程。
比如大家在dev上各自拉一个分支,你写你的分支,我写我的分支,你提交到dev后,我还没有提交,这时我的分支只是个暂时分支,就可以变基到你的提交历史上,进行冲突解决。开发完成后我删除这个分支。
然后,这就是一条线了。

其实,还有疑问的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值