Git Merge与Git Rebase区别

Git Merge与Git Rebase区别

git merge 和 git rebase 都是为解决分支冲突,下面以一个具体的例子说明git merge 和 git rebase 之间的区别。

Git Merge

  1. 添加a.txt

  2. 创建feature分支

    git branch feature
    

    初始
    此时master分支和branch分支在同一位置

  3. 在master分支上修改a.txt,此时master分支领先feature分支一个commit
    master领先feature分支一个commit

  4. 切换到feature分支,修改a.txt

    git checkout feature
    

    feature分支修改a.txt

  5. 将feature分支合并到master分支上

    git checkout master
    git merge feature
    
  6. 因为master分支和feature都修改了a.txt,所以无法自动合并,需要手动解决冲突
    自动合并失败

  7. 手动解决冲突,例如将当前代码和feature分支上的代码拼接起来
    冲突
    手动解决冲突

  8. 提交代码

    git add .
    git commit -m "Merge branch feature to master"
    

    合并分支代码
    使用merge方式会产生一次合并代码的提交

  9. feature分支同步master分支

    git checkout feature
    git merge master
    

    在这里插入图片描述
    在这里插入图片描述
    此时feature分支和master分支再次位于同一位置

Git Rebase

下面再在上面例子的基础上演示rebase

  1. master分支再次修改a.txt,master再次领先feature一个commit
    在这里插入图片描述

  2. feature分支也再次修改a.txt
    在这里插入图片描述

  3. 将feature分支合并到master分支上

    git rebase master
    

    在这里插入图片描述

  4. 手动解决冲突

    git add .
    git rebase --continue
    

    在这里插入图片描述
    在这里插入图片描述

  5. master分支合并feature分支

    git merge feature
    

    在这里插入图片描述

对比

对比两种方式,可以看出使用git merge的方式解决冲突,需要三次commit(master modify a.txt、feature modify a.txt、Merge branch feature to master);使用git rebase的方式解决冲突,需要两次commit(Master modify a.txt again、feature modify a.txt again)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值