zoukankan      html  css  js  c++  java
  • git高级浅入之rebase与merge差异

    目录

    • rebase的几个操作

    • rebase与merge的比较和实际操作

    • 结合动图加深理解rebase

    1.rebase的几个操作

    • git rebase [分支名]
    • git rebase --continue 继续rebase
    • git rebase --abort 放弃本次rebase

    2.rebase与merge的比较和实际操作

    相比较于git merge,我们在初级篇已经学习过merge操作,每次使用merge合并分支时候,会将两个分支又合到一条分支上,这样造成的问题就是在一个git分支树上好多交叉,如果你希望commit的时候不要出现分支,可以使用rebase替代
    我们新建一个git项目,然后创建一个空的test.js文件并commit,这时候的分支图是这样的

    接下来我们在master分支修改test.js文件并commit,然后创建一个分支branch1,并在branch1上修改test.js文件,并提交。然后我们看下分支图

    如果这时候我们在master分支合并branch1的话

    git checkout master
    git merge branch1
    

    打叉了!打叉了!打叉了!
    ok,我们回退到上一个版本,回退后分支是这样的

    试下使用rebase的效果,进行如下操作

    git checkout branch1
    git rebase master
    


    报了个错,说rebase的时候有冲突,那么我们vim test.js冲突的地方修复,然后执行下面

    git add .
    git rebase --continue // 继续rebase (同时普及一下另外一个git rebase --abort 放弃本次rebase)
    

    这个时候分支是这样的:

    然后我们回到master,去merge branch1(这样的目的是因为能从上图看到,master所指向的位置靠后了,要将其更新到最前面)

    git checkout master
    git merge branch1
    

    3.结合动图加深理解rebase

    git merge branch1
    

    git checkout branch1
    git rebase master
    

    git checkout master
    git merge branch1
    


    为什么需要再branch1上rebase而不是在master上直接rebase?看下图

    总结

    其实就从字面意思来理解在branch1上git rebase master就是说把branch1的基准重新定位到master分支指向的最新一次commit处,

  • 相关阅读:
    HDFS详解(3)——HDFS文件结构
    HDFS详解(1)
    MapReduce工作机制
    Hadoop体系结构
    Hadoop 项目及结构
    (转)Hadoop生态系统
    Hadoop配置参数
    HDFS详解(2)——HDFS中的读写数据流
    Yarn(MapReduce V2)
    与或非实习day02
  • 原文地址:https://www.cnblogs.com/fe-linjin/p/10775987.html
Copyright © 2011-2022 走看看