zoukankan      html  css  js  c++  java
  • git补充(fetch和rebase)

    有一个远程仓库origin:
        在这里插入图片描述

    本地在此基础上又进行了两次提交:
        在这里插入图片描述

    这时候其他人进行了一次远程push:
        在这里插入图片描述

    因为git是分布式的,原则上可以不用连服务器,所以此时本地并不知道远程分支已经变更(本地的origin/master已经过时):
        在这里插入图片描述

    git fetch命令会将远程最新的版本拉取到本地,但是并不会影响本地的分支线:
    git fetch <远程主机名> <远程分支>
        在这里插入图片描述

    git meger会将本地和远程的最新提交混合起来,并生成新的最新提交(混合并解决冲突后的提交):
        在这里插入图片描述

    git pull命令等于git fetch + git meger命令。

    我们再看下上面git fetch命令后的本地状态:
        在这里插入图片描述

    这时候我们并不想混合提交,而是想在C2的基础上直接提交L2和L3,这时候在提交历史线上不会有分支线。这个可以用git rebase命令实现:
        在这里插入图片描述

    日常开发步骤如下:

    1. git fetch
    2. git rebase
    3. 解决冲突
    4. git add 冲突文件
    5. git rebase –continue
    6. git push

    其中,3、4、5点,如果没遇到冲突就不用进行,直接push上去。

    当遇到冲突时,git会提示patch failed,并要我们解决问题了再执行git rebase --continue

        git rebase patch failed

  • 相关阅读:
    Windows 配置JAVA的环境变量
    不直接用NSLog
    Mongodb for Mac 安装
    Redis Mac 安装及简单命令使用
    第十五天和十六天学习笔记
    第十四天学习笔记
    第十三天学习笔记
    第十二天学习笔记
    第十一天学习笔记
    第十天学习笔记
  • 原文地址:https://www.cnblogs.com/helloworldmybokeyuan/p/11842670.html
Copyright © 2011-2022 走看看