当前位置: 首页 > news >正文

git rebase的常用场景: 交互式变基, 变基和本地分支基于远端分支的变基

文章目录

    • 作用
    • 应用场景
      • 场景一:交互式变基(合并同一条线上的提交记录) —— git rebase -i HEAD~2
      • 场景二:变基(合并分支) —— git rebase [其他分支名称]
      • 场景三:本地分支与远端分支的变基

作用

  • 使git的提交记录变得更加简洁

应用场景

场景一:交互式变基(合并同一条线上的提交记录) —— git rebase -i HEAD~2

  • 对象:版本库中的本地分支

  • git rebase -i HEAD~2 #将head标签当前最近的2次提交合并成一个提交,如下图所示:

  • 注意要合并的提交里面不能包含已经上传到远端仓库的提交,如图中远端仓库的最新提交一直处于"第一天提交的位置"
    在这里插入图片描述

  • 为啥叫交互式?

    • 之所以被称为交互式变基(interactive rebase),是因为这个命令让用户可以以交互方式控制变基过程中要如何处理每个提交。当你使用 -i 参数时,Git 会打开一个文本编辑器,列出你指定的提交历史,并允许你对这些提交进行各种操作。
  • 注意:再次强调:要合并的提交里面不能包含已经上传到远端仓库的提交;
    在这里插入图片描述

git rebase -i HEAD~2 #将head标签当前最近的2次提交合并成一个提交

在这里插入图片描述

  • 编辑合并过后提交的commit message
    在这里插入图片描述
git log #查看提交记录

在这里插入图片描述

场景二:变基(合并分支) —— git rebase [其他分支名称]

  • 对象:版本库中的本地分支
  • 1.切换到当前分支
  • 2.git rebase [其他分支名称]
  • 3.就会将当前分支的提交应用到其他分支的最新提交上
    • 注意:1.最终被修改的还是当前分支; 2.应用到其他分支的提交为当前分支跟其他分支共同祖先的后续提交;
    • 例如下图
    • 主线和分支一的共同祖先是”第二天提交“
    • 在分支一使用git rebase 主线以后,会将"第三天提交"应用到主线的最新提交上面,即第四天后面;
    • 最后将结果保存在分支一上面,主线分支不变;

在这里插入图片描述

场景三:本地分支与远端分支的变基

  • 对象:版本库中的本地分支和远端分支
  • 本质相当于把远端的分支拉取到版本库中,然后使用git rebase 远端分支:基于当前head所在分支,变基到本地版本库中的远端分支标签所在的分支
# 本地分支:master
git fetch origin dev # 拉取远端dev分支到本地版本库
# git log --oneline --graph --all 可以通过该命令产看版本库中origin/dev的支线状态
git rebase origin/dev # 将master分支上的提交应用到origin/dev的最新提交上面
  • 初始状态
    在这里插入图片描述
  • 执行git fetch origin master # 拉取远端dev分支到本地版本库
    在这里插入图片描述
  • 执行git rebase origin/master
    在这里插入图片描述
http://www.lryc.cn/news/464433.html

相关文章:

  • HttpURLConnection构造请求体传文件
  • STM32传感器模块编程实践(九) VL53L0X激光红外测距传感器简介及驱动源码
  • fastjson注解说明,fastjson注解有那些?fastjson是java的json序列化和反序列化工具包
  • VIT:论文关键点解读与常见疑问
  • ArcGIS无插件加载(无偏移)在线天地图高清影像与街道地图指南
  • 工业相机选型(自用笔记)
  • 【网安笔记】4种拒绝服务攻击
  • WPF 的组件数据绑定详解
  • 房子,它或许是沃土
  • 【Golang】Go语言http编程底层逻辑实现原理与实战
  • SOLIDWORKS参数化软件
  • 上位机开发常用技术 C# Task 线程 开始,暂停,继续,停止
  • MySQL 密码忘记了怎么办?
  • Java中常见的自带数据结构类
  • 数据结构——链表,哈希表
  • 如何使用Python对Excel、CSV文件完成数据清洗与预处理?
  • 第8篇:网络安全基础
  • Flutter 中的 PopScope 小部件:全面指南
  • 视频剪辑的未来
  • 通过PHP与API的结合,开启电商数据集成的新篇章
  • 使用 CDN 后 Apache 的日志记录客户真实 IP
  • ORACLE 19C安装 RAC报错
  • 省心英语 3.9.9| 资源最全面的英语学习App
  • ruoyi框架动态切换数据库
  • iba Data Export 导出面板选项
  • 过滤器Filter的介绍和使用
  • JMeter之mqtt-jmeter 插件介绍
  • Nacos2.3.2在ubuntu中的部署
  • Xilinx远程固件升级(一)——QuickBoot方案
  • O(1)调度算法与CFS