• git rebase和merge区别


    git rebase和merge区别

    一、命令概述

    merge和rebase

    标题上的两个命令:merge和rebase都是用来合并分支的。

    这里不解释rebase命令,以及两个命令的原理,详细解释参考这里

    1、什么是冲突?

    合并的时候,有可能会产生冲突。

    冲突的产生是因为在合并的时候,不同分支修改了相同的位置。所以在合并的时候git不知道哪个到底是你想保留的,所以就提出疑问(冲突提醒)让你自己手动选择想要保留的内容,从而解决冲突。

    二、merge和rebase的区别

    区别:采用merge和rebase后,git log的区别,merge命令不会保留merge的分支的commit,rebase会保留所有的commit

    1、rebase

    会把你当前分支的 commit 放到公共分支的最后面,所以叫变基。就好像你从公共分支又重新拉出来这个分支一样。
    举例:如果你从 master 拉了个feature分支出来,然后你提交了几个 commit,这个时候刚好有人把他开发的东西合并到 master 了,这个时候 master 就比你拉分支的时候多了几个 commit,如果这个时候你 rebase master 的话,就会把你当前的几个 commit,放到那个人 commit 的后面。

    2、merge

    会把公共分支和你当前的commit 合并在一起,形成一个新的 commit 提交

    三、处理冲突的方式

    • (一股脑)使用merge命令合并分支,解决完冲突,执行git add .git commit -m'fix conflict'。这个时候会产生一个commit。
    • (交互式)使用rebase命令合并分支,解决完冲突,执行git add .git rebase --continue,不会产生额外的commit。这样的好处是,‘干净’,分支上不会有无意义的解决分支的commit;坏处,如果合并的分支中存在多个commit,需要重复处理多次冲突。

    四、git pullgit pull --rebase区别

    git pull做了两个操作分别是‘获取’和合并。所以加了rebase就是以rebase的方式进行合并分支得到一条干净的分支流。

  • 相关阅读:
    cv2.imread无法读取图片
    ROS机械臂 Movelt 学习笔记3 | kinect360相机(v1)相关配置
    Maven入门:Java项目构建和管理的利器
    02Python基础知识
    基于Arduino开发板的太阳能灯光控制器
    C++ Reference: Standard C++ Library reference: C Library: cwctype: iswgraph
    京东获取商品历史价格信息 API接口
    详细介绍Webpack5中的Loader
    MySQL57部署与配置[Windows10]
    二十一、商城 - 商品录入-KindEditor 编辑器(9)
  • 原文地址:https://blog.csdn.net/qq_45830276/article/details/126572919