git merge和git rebase区别

具体详情

具体常见如下,假设有master和change分支,从同一个节点分裂,随后各自进行了两次提交commit以及修改。随后即为change想合并到master分支中,但是直接git commit和git push是不成功的,因为分支冲突了【master以及修改】

  • 原来开始master和change图示【相同颜色为同一分支内容】
    在这里插入图片描述

git merge操作【历史记录较多】

  • git merge实际上为即为先让git按照master和change分支提交顺序排列,分别到达各自顶端,随后执行merge commit具体如下图所示,git log命令查看的时候会存在多个提交记录,而且最终合并到feature分支中

  • 代码

    • git checkout change
      git pull origin master # 等于 git fetch origin master + git merge master change
      
  • 具体如下图所示
    在这里插入图片描述

git rebase操作【历史记录较少】

  • git rebase实际上先移动到master顶端,即为更新所有change分支内的master分支内容,即为先更新master分支内容,随后对change分支直接移动到master分支顶端,在执行change分支内容,因此,最终合并记录较少

    • 具体如下图所示

在这里插入图片描述

  • 代码
    • git checkout feature
      git pull --rebase origin master # 等于git fetch origin master + git rebase master