zoukankan      html  css  js  c++  java
  • git pull origin master与git pull --rebase origin master的区别

    参考

    建议:最好看一遍廖雪峰的git教程,看完时间差不多就两个小时,git相关的知识写的很清楚,看完整个人都豁然开朗,很多git的问题都想通了。

    区别:

    git pull=git fetch + git merge
    git pull --rebase=git fetch+git rebase

    git fetch : 从远程分支拉取代码,可以得到远程分支上最新的代码。

    所以git pull origin master与git pull --rebase origin master的区别主要是在远程与本地代码的合并上面了。

    现在有两个分支:test和master,假设远端的master的代码已经更改了(在B基础上变动:C,E),test的代码更改了要提交代码(在B基础上变动:D,E),如下图:

          D---E test
          /
     A---B---C---F--- master

    问题就来了,如果C,F和D,E的更改发生冲突,那么就需要我们合并冲突了,下面我们来看看git merge和git rebase怎么合并的

    git merge:

           D--------E
          /          
     A---B---C---F----G---   test, master

    git rebase

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

    对比可看出:git merge多出了一个新的节点G,会将远端master的代码和test本地的代码在这个G节点合并,之前的提交会分开去显示。

    git --rebase会将两个分支融合成一个线性的提交,不会形成新的节点。

    rebase好处

    rebase好处
    想要更好的提交树,使用rebase操作会更好一点。
    这样可以线性的看到每一次提交,并且没有增加提交节点。
    merge 操作遇到冲突的时候,当前merge不能继续进行下去。手动修改冲突内容后,add 修改,commit 就可以了。
    而rebase 操作的话,会中断rebase,同时会提示去解决冲突。
    解决冲突后,将修改add后执行git rebase –continue继续操作,或者git rebase –skip忽略冲突。
  • 相关阅读:
    编译环境及编译器介绍
    linux下同步window的firefox
    DPDK pdump抓包说明
    linux TCP协议(1)---连接管理与状态机
    Linux用户态数据发送和接收
    DPDK之内存管理
    linux socket系统调用层
    linux网络栈结构
    DPDK mbuf何时释放回内存池?
    虚拟设备之linux网桥
  • 原文地址:https://www.cnblogs.com/ellen-mylife/p/12794245.html
Copyright © 2011-2022 走看看