首页 > 其他分享 >Git必知必会基础(11):merge和rebase的区别

Git必知必会基础(11):merge和rebase的区别

时间:2024-01-22 21:57:43浏览次数:47  
标签:11 Git 必知 rebase 合并 merge git master 分支

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/10854115.html

merge和rebase使用回顾

上两篇我们分别演示了merge和rebase的使用,分别详见:

https://www.cnblogs.com/uncleyong/p/17967432

https://www.cnblogs.com/uncleyong/p/17978213

下面我们来总结下二者的差异。

 

merge

作用:git merge用来合并分支,用于将两个或多个分支的代码合并到一个新的或现有的分支中

 

合并:会产生一个新的合并提交,并且每个分支的历史记录都会保存(不修改提交历史,可以清晰地看到哪些提交是在哪个分支上完成的)

将dev合并到master

1、dev commit

2、切换到master,与origin/master同步

3、git merge dev

  

 

优点:合并保留了每个分支的独立性,即使两个分支合并了,它们的提交历史仍然可以追溯到各自的起点

 

缺点:合并图非线性,如果分支多且合并多,互相交叉,易读性不高

 

合并前

 

合并后

 

95fc216以下是merge的合并图

 

rebase

作用:git rebase用来变基,就是重新定义(re)起点(base)的作用,即重新定义分支的版本,能实现和merge相同的效果,将一个分支的修改合并到另一个分支上

 

合并:会将当前分支的提交“挪动”到rebase的目标分支上,使得分支的提交历史变得更加线性;会修改提交历史,因为它将当前分支的提交重新应用到了新的基础上

将dev合并到master

1、dev commit

2、切换到master,与origin/master同步

3、切换到dev,git rebase maser,如果有冲突就修改冲突文件,git rebase --continue

4、切换到master,git merge dev

  

优点:git rebase 对两个分叉的分支合并后,历史记录是一条直线(线性),会显得更为整洁,合并图更易读

  缺点:由于 rebase 将提交历史变得线性,所以在 rebase 后,你无法直观地看出哪些提交是在原分支上完成的,可能会丢失分支的独立性  

另外:

1、不要对master分支进行rebase

2、仅对本地自己的提交且没有推送到远程仓库的分支做rebase操作

    合并前

 

合并中

 

合并后

 

95fc216以上是rebase的合并图

 

【bak】

标签:11,Git,必知,rebase,合并,merge,git,master,分支
From: https://www.cnblogs.com/uncleyong/p/17978581

相关文章

  • 1148. 秘密的牛奶运输
    https://www.acwing.com/problem/content/1150/农夫约翰要把他的牛奶运输到各个销售点。运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点。运输的总距离越小,运输的成本也就越低。低成本的运输是农夫约翰所希望的。不过,他并不想让他的竞争对手知道......
  • 2024新版Windows 11要来了!16GB内存需求引热议 只是推荐配置
    最近,TrendForce集邦咨询的一份报告指出,微软已经将AIPC的内存基线设置为16GB。有媒体表示,这也意味着,新版Windows11的AI功能需要至少16GB内存才能运行。消息曝光后引发热议。对此,WC报道称,微软尚未就上述内存需求发表官方评论。16GB内存很可能只是微软的推荐配置,而非最低配置要求......
  • 32位双核TMS320F28379DZWTQR(MCU),HITAG®读卡器芯片HTRC11001T(125kHz)
    1、TMS320F28379DZWTQR ICMCU32BIT1MBFLASH337NFBGATMS320F28379D-Q1的说明C2000™32位微控制器针对处理、感应和驱动进行了优化,以提高实时控制应用(如工业电机驱动器、光伏逆变器和数字电源、电动汽车和运输、电机控制以及感应和信号处理)的闭环性能。C2000系列包含高级性......
  • git ssh链接远程仓库
    一、参考博客——创建ssh链接——解决端口链接超时二、创建ssh链接2.1安装git链接:https://pan.baidu.com/s/19bjRZz_uhXW8HuVVNiLz4A?pwd=bxe0提取码:bxe0选择下载的地址,一路next,当然默认编辑器啥的配置,自己有需要就点击,但是最后一项带有new的next不建议勾选。——下载......
  • 工作中的网络知识之三802.3和802.11
    工作中的网络知识之三802.3和802.11背景网络知识其实不仅仅有硬件,软件,IP地址性能相关,其实还有一些协议相关的内容.比如wifi或者是4G/5G的网络.所以想着这里再总结一下部分协议相关802协议簇IEEE802系列标准是IEEE802LAN/MAN标准委员会制定的局域网、城域网技......
  • Git常用命令
    1初始化仓库#1初始化仓库gitinit#初始化当前文件夹gitinit文件夹#在当前文件夹下创建文件夹,并把新创建的文件夹作为仓库——仓库目录下会出现.git文件夹,文件夹千万不要删除2查看仓库状态gitstatusgitstatus-s#查看仓库状态的简约显示#红色:工作区有......
  • vscode本地调试gitbook
    1.windows下载安装git2.安装nodejs下载安装nvmhttps://github.com/coreybutler/nvm-windows/releases/download/1.1.9/nvm-setup.exe安装配置nodejsC:\Users\Administrator>nvminstall10Downloadingnode.jsversion10.24.1(64-bit)...CompleteCreating......
  • git 基本使用
    https://git-scm.com/docs/git/zh_HANS-CN官方文档基本命令gitgui 自带的Gui界面(仅英文)gitconfig-e 编辑git配置文件,针对当前仓库gitconfig-e--global 编辑git配置文件,针对系统上所有仓库gitconfig--globaluser.name<名称> 配置git文件,......
  • git常用命令速查表
    群友分享的速查表: __EOF__作者:持之以恒(韧)关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等......
  • Git必知必会基础(08):分支合并
    补充切换分支前一定要先将当前分支内容add、commit到本地仓库然后fetch远程仓库分支合并,有冲突就解决冲突(因为可能别人push了),然后push另外,也可能你push前和pull后这段时间别人又push了,这样就需要再次fetch合并 命令 命令作用备注git merge分支名表示用指定分支和当前分支进行合......