Git分支rebase和merge的区别是什么?

平时工作中发现一般同事在同步远程代码的时候都是用git pull,其实git pull包含有两个操作,一个是fetch远程的代码,一个是将本地当前的代码和远程代码进行merge,即git fetch + git merge.

其实git pull还有一个参数可以加,即git pull -rebase,其最终效果和git pull一样,也会fetch到远程代码。

即git pull默认使用的是merge模式,那么git pull -rebase指定使用rebase模式。

那么git merge和git rebase的区别是什么呢?

1、结果上没有区别

简单来说,git merge和git rebase从最终效果来看没有任何区别,都是将不同分支的代码融合在一起。

2、生成的代码树不同

虽然从最终效果上来说相同,但是git merge和git rebase生成的代码树稍微有些不同。

git merge(合并)代码树

1.jpg

git rebase(复位基底)代码树

2.jpg

3. git merge会生成一个新的合并点,而git rebase不会。

比如:当前存在两个分支,master和test分支

D---E test

/

A---B---C---F master

如果使用merge合并,将为分支合并自动识别出最佳的同源合并点:并新增合并点G

D--------E

/ \

A---B---C---F----G test, master

如果使用rebase合并,则合并结果为:

A---B---D---E---C'---F' test, master

即git rebase可以线性的看到每次提交,而git merge可以更加精确的看到每次提交。

所以想要更好的提交树,使用rebase操作会更好一点。这样可以线性的看到每一次提交,并且没有增加提交节点。

4. 遇到冲突时的处理

merge 操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以继续往下操作

而rebase 操作的话,会中断rebase,同时会提示去解决冲突。解决冲突后,将修改add后执行git rebase —continue继续操作,或者git rebase —skip忽略冲突。

更多web开发知识,请查阅 HTML中文网 !!

以上就是Git分支rebase和merge的区别是什么?的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » 其他答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏