git merge和git rebase命令

news2024/11/29 14:54:00

参考链接:https://www.cnblogs.com/michael-xiang/p/13179837.html

学习背景:已经学习过git,但是实践较少,未和他人协作

1.merge

git merge表示把当前分支合并到版本库中下拉的远程分支上。

git merge A B表示把A分支合并到B上。

1.1 fast forward合并

合并说明:

  • fast forward合并指合并两个没有分叉的分支。

  • 合并效果是高版本分支替换低版本分支,低版本分支的HEAD指针指向高版本分支最新的提交。

举例:

多人合作项目,自己请假回家多日未工作。同事已经提交了好几个版本的新代码。请假结束后,使用git pull下拉最新代码,因为自己仓库版本是远程仓库的老版本,即没有分支。那么下拉会使用fast forward合并,覆盖自己所有代码。如果同事修改过你的代码,那么你下拉后会变成同事修改的版本。

图示举例:

feature是远程仓库的分支

在这里插入图片描述

master是本地仓库的分支。对比发现本地分支没有未上传远程仓库的提交,因为远程仓库有d2falae的提交,这是本地仓库最新提交

在这里插入图片描述

使用git merge合并,先尝试fast forward合并,合并成功,将本地master分支合并成了远程feature分支,本地HEAD指向和feature分支一样的41bd1d9提交

在这里插入图片描述

1.2 no fast forward合并

合并说明:

  • no fast forward合并指合并两个有分叉的分支。

  • 合并效果是在高版本分支上新创建一个提交记录,表示低版本分支的修改,之后高版本分支替换低版本分支,低版本分支的HEAD指针指向高版本分支最新的提交。

举例:

多人合作项目,自己写的代码已经提交,但是未上传远程仓库。同事已经提交了好几个版本的新代码,并且你们没有共同修改相同的文件。此时用git pull下拉最新代码,此时你的分支和同事的分支发生了分叉,分叉部分就是你未上传远程仓库的提交。那么下拉会用no fast forward合并,在远程仓库的新分支上新建一个提交,表示在新分支上合并你的提交。

图示举例:

feature为远程分支,master为本地分支,本地分支有未上传的提交,无法用fast forward合并

在这里插入图片描述

使用git merge会先尝试fast forward合并,失败后会使用no fast forward合并,可以看见新创建了一个提交e0c3d77表示将master最新提交3793081和feature最新提交41bd1d9合并的结果

在这里插入图片描述

2.rebase

git rebase表示把当前分支作为基,让版本库中下拉的远程分支向前移植。

git rebase A B表示把A分支作为基,让B分支向前移植。

变基说明:

  • 使用rebase指定基分支和目标分支,之后找到基分支和目标分支的最近公共祖先,远程分支不变。从最近公共祖先开始,将目标分支在最近公共祖先后的提交插入基分支后最新提交之后,目标分支在最近公共祖先后的每个后续提交都发生了更新。这样让远程分支的基变成本地分支之后,相当于本地分支的最新提交和远程仓库的分支没有分叉,可以使用fast forward合并本地和远程分支。

图示举例:

feature为远程仓库分支,master为本地分支

在这里插入图片描述

使用git rebase,让本地分支master做基,远程分支feature前移

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DACS: Domain Adaptation via Cross-domain Mixed Sampling 学习笔记

DACS介绍方法Naive MixingDACSClassMix![在这里插入图片描述](https://img-blog.csdnimg.cn/ca4f83a2711e49f3b754ca90d774cd50.png)算法流程实验结果反思介绍 近年来,基于卷积神经网络的语义分割模型在众多应用中表现出了显著的性能。然而当应用于新的领域时&…

2250216-92-1,Propargyl-PEG3-triethoxysilane,炔基-三聚乙二醇-三乙氧基硅烷,具有高效稳定和特异性

【中文名称】炔基-三聚乙二醇-三乙氧基硅烷【英文名称】 Propargyl-PEG3-triethoxysilane【结 构 式】【CAS号】2250216-92-1【分子式】C19H37NO7Si【分子量】419.59【基团部分】炔基基团【纯度标准】95%【包装规格】1g,5g,10g,可以提供核磁图…

Zebec生态持续深度布局,ZBC通证月内翻倍或只是开始

“Zebec生态近日利好不断,除了推出了回购计划外,Nautilus Chain、Zebec Labs等也即将面向市场,都将为ZBC通证深度赋能。而ZBC通证涨幅月内突破100%,或许只是开始。”近日,流支付生态Zebec生态通证ZBC迎来了大涨&#x…

计算机网络的166个核心概念,你知道吗?

上回我整理了一下计算机网络中所有的关键概念,很多小伙伴觉得很有帮助,但是有一个需要优化的点就是这些概念不知道出自哪里,所以理解起来像是在云里穿梭,一会儿在聊应用层的概念,一会儿又跑到网络层协议了。针对这种情…

小学生学Arduino---------点阵(二)动态图片以及文字

今天进阶了利用人眼视觉暂留原理制作动态的图片变换。 1、熟练掌握图片显示器的使用 2、创作多种动态图片、文字的显示 3、明确动态图片、文字显示过程 4、掌握图片显示器中清空指令的使用 5、搭建动态图片、文字的显示电路 6、编写动态图片、文字的程序 复习: 绘…

@Slf4j注解的使用

1.Slf4j的作用? 很简单的就是为了能够少写两行代码,不用每次都在类的最前边写上: private static final Logger logger LoggerFactory.getLogger(this.XXX.class); 我们只需要在类前面添加注解Slf4j,即可使用log日志的功能了 2.…

美格智能与宏电股份签署战略合作协议,共创5G+AIoT行业先锋

2月17日,美格智能技术股份有限公司CEO杜国彬及相关业务负责人员一行到访深圳市宏电技术股份有限公司总部大厦参观交流,并参加了主题为“聚势同行、合创未来”宏电股份与美格智能2023年IoT产业生态合作研讨会,受到了宏电股份总裁张振宇及相关业…

手写Promise方法(直击Promise A+规范)

前言:大家好,我是前端獭子。高效优雅是我的创作方式。学习是一个渐进的过程,要把知识串联起来才能解决某一方面的问题。 Promise 构造函数 我们先来写 Promise 构造函数的属性和值,以及处理new Promise()时会传入的两个回调函数。…

【Git】IDEA集合Git和码云

目录 7、IDEA集合Git 7.1 配置Git忽略文件-IDEA特定文件 7.2 定位 Git 程序 7.3 初始化本地库 7.4 添加到暂存区 7.5 提交到本地库 7.6 切换版本 7.7 创建分支 7.8 切换分支 7.9 合并分支 7.10 解决冲突 8、 Idea集成码云 8.1 IDEA 安装码云插件 8.2 分析工程到码…

QHashIterator-官翻

QHashIterator Class template <typename Key, typename T> class QHashIterator QHashIterator 类为 QHash 和 QMultiHash 提供 Java 风格的常量迭代器。更多内容… 头文件:#include qmake:QT core 所有成员列表&#xff0c;包括继承的成员废弃的成员 公共成员函数…

硫酸锂溶液除钙镁树脂系统

H-93锂盐净化除钙镁镁螯合树脂是包含氨甲膦酸基连接到聚苯乙烯共聚物的一种耐用的大孔树脂。 CH-93是用于锂盐净化除钙镁从含有一价阳离子的废水处理中选择性的除去二价金属阳离子。使二价金属阳离子以及由其他二价阳离子可以像钙一样容易地从一价阳离子中分离出来。 CH-93是…

[论文阅读笔记19]SiamMOT: Siamese Multi-Object Tracking

这是CVPR2021的一篇文章, 是利用SOT的一些思想来进行MOT的运动估计. 文章地址: 文章 代码地址: 代码 0. 摘要 本文提出了一个孪生(Siamese)式的MOT网络, 该网络用来估计帧间目标的运动. 为了探究运动估计对多目标跟踪的影响, 本文提出了两种运动建模方式: 显式和隐式. 本文在…

C++(41)-低版本升级到VS2019项目时遇到的问题(2)

1.错误码&#xff1a;MSB8066 代码为3 QT 项目老版本升级到新版本造成的&#xff0c; 1.重新加载项目&#xff1a; 扩展->QT VS tools->Open QT project files-> 2.添加QT模块&#xff1a;QT Project-Settings -> QT Modules2.无法打开QT的头文件 3.…

电脑自带的录屏放在哪里了?轻松弄懂,看这篇文章就明白了

有很多小伙伴有这个疑问&#xff0c;电脑自带的录屏放在哪里了&#xff1f;其实&#xff0c;电脑自带的录屏工具并不是所有电脑都要&#xff0c;具体要看你的电脑品牌和操作系统&#xff0c;Windows系统和Mac系统的电脑都自带了录屏工具&#xff0c;下面跟着小编一起来看看吧。…

Redis:缓存一致性问题(缓存更新策略)

Redis缓存的一致性1. 缓存1.1 缓存的作用&#xff1a;1.2 缓存的成本&#xff1a;2. 缓存模型3. 缓存一致性问题3.1 引入3.2 解决(1) 先更新数据库&#xff0c;再手动删除缓存(2) 使用事务保证原子性(3) 以Redis中的TTL为兜底3.3 案例&#xff1a;商铺信息查询和更新(1) 查询商…

“双碳”目标下二氧化碳地质封存技术应用前景及模型构建实践方法与讨论

我国二氧化碳地质封存技术起步较晚&#xff0c;目前仍没有一套相对完整的行业规范&#xff1b;且就该技术而言&#xff0c;涉及环节众多&#xff0c;理论相对复杂&#xff0c;对于行业的新入局者不太友好。因此&#xff0c;结合时代背景&#xff0c;我们首次尝试对二氧化碳地质…

【面试1v1实景模拟】Spring事务 一文到底

老面👴:小伙子,了解Spring的事务吗? 解读🔔:这个必须了解,不了解直接挂~😂😂😂,但面试官肯定不是想听你了解两个字,他是想让你简单的介绍下。 笑小枫🍁:了解,事务在逻辑上是一组操作,要么执行,要不都不执行。主要是针对数据库而言的,比如说 MySQL。为…

C++——C++11第三篇

目录 包装器 function包装器 bind 包装器 function包装器 function包装器 也叫作适配器。C中的function本质是一个类模板&#xff0c;也是一个包装器。 上面的程序验证&#xff0c;我们会发现useF函数模板实例化了三份。 包装器可以很好的解决上面的问题 &#xff0c;让它只实…

Android新启动模式之singleInstancePerTask

Android新启动模式之singleInstancePerTask 一.singleInstancePerTask介绍 singleInstancePerTask为android12新增的在standard、singleTop、singleTask、singleInstance之后的第五种启动模式。 Android12对于singleInstancePerTask描述如下(sdk中在platforms/android-31/d…

05- 形态学及图像的开闭运算 (OpenCV基础) (机器视觉)

知识重点 二值化操作 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)&#xff0c;对灰度图像操作, 全局阈值&#xff0c;整幅图像采用同一个数作为阈值 。 自适应阈值二值化 dst cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 9, …