你不知道的git如何撤销回退版本

news2024/10/7 2:28:49

简言之:从1 回退到 3,在3版本通过回退记录(git reflog)找到它的上一条回退记录的hash值,复制1的hash值进行回退,执行git reset --hard 粘贴1的hash值进来,此时就回到1的版本了,执行git log即可看到1、2、3、4、5所有提交记录。

举例说明:我总共有1、2、3、4、5,5条提交版本记录,我现在已经回退到3了,可是这个版本我不满意,我要回退到1、2,也就是最近的一次提交;但是自从回退到3版本,我用git log找不到3之前的1、2的提交版本号(每个版本的一长串hash值),那如何才能找回它们的版本号呢?那就是用git reflog查看回退记录,git的撤销回退版本规则是这样的:在git reflog中找到上一条回退记录的,也就是你从哪回退来的这个hash值,复制这个hash值,使用 git reset --hard 粘贴到这里,就可以回到你 回退前的版本,也就是1最近的一次提交,再执行git log就可查到1、2、3、4、5所有提交记录。

实战演示

需求:回退到首次提交所有代码版本,再从此版本回退到第四次提交,也就是最近的一次提交。

1、这是我的提交记录

在这里插入图片描述

2、回退

git reset --hard  d4cbaafd76e7ddd0435d761566d1530426a636c8
或  git reset --hard  d4cbaaf // 取上面的前7位

当前回退的版本为d4cbaaf

在这里插入图片描述

3、此时用git log已经找不到之前的提交记录了,也就是 修复文档第四次提交的记录

在这里插入图片描述

4、虽然git log没有日志,但是git reflog 记载着每一次版本移动的记录以及对应版本的版本号

执行 git reflog
在这里插入图片描述
提示:git的回退是靠hash值的,所以只要有这个值,那一切都好办了。

5、正式从 回退版本撤销到最近提交的版本,即 首次提交所有代码 回到 第四次提交。换成数字举例就是 从3回到1

当前版本已成功回退到 第四次提交了,拿下。

git reset --hard f9ae7aa

在这里插入图片描述

6、撤销回退之后如果要提交这个版本更新到远端仓库,就执行git push -f,强制推送上去。

git push -f 

命令说明:回退版本后使用git push -f强制推送是为了覆盖远程仓库的当前版本。
其实撤销回退准确来讲还是叫回退,只是为了方便大家理解,更加语义化、直观的表达方式。

7、此时已经能看到当前版本之前的提交记录了,因为当前已经是 第四次提交的版本了,不再像 首次提交所有代码一样。

git log查看
在这里插入图片描述

git log 和 git reflog的区别

git log:只能看到当前版本以及它之前的记录,但是看不到它后来的版本。2看不到最新的1,但能看到2、3、4、5老的。如果当前是1,那就能看到1、2、3、4、5。

git reflog:查看每次版本移动的轨迹,回退时专用。
这个查看回退记录功能我就知道git设计者肯定不会随便的将部分版本删除掉了,肯定是需要用一些办法才能让不见天日的版本起死回生。

拓展:命令行如何复制hash值

鼠标选中复制的内容右键 => 选Paste (复制) => Copy (粘贴)

后言

今天在用git处理仓库的东西,突然就钻研了一下,把之前懂得不是很全的知识点补充了一下。至少我个人觉得这篇挺精髓的,这个撤销回退版本操作,不需要自己去备份老版本就可以自由回退不同版本,游刃有余。记录一下,方便以后遇到或者正在遇到找这个方案的小伙伴,就这样。😊

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

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

相关文章

安装pytorch GPU的方法,一次安装成功!!win10、win11皆可用!!

前提—查看是否有NVIDIV英伟达显卡!! 在控制面板打开设备管理器 一、查看电脑的显卡驱动版本 方法一:在cmd命令窗口中输入nvidia-smi,可以发现版本为12.2 方法2:点击NVIDIA控制面板→系统信息 二、安装CUDA 方法1…

算法(4)——前缀和

目录 一、前缀和的定义 二、一维前缀和 三、一维前缀和OJ题 3.1、前缀和 3.2、寻找数组中心下标 3.3、除自身以外数组的乘积 3.4、和为K的数组 3.5、和可被K整除的子数组 3.6、连续数组 四、二位前缀和 4.1、二维前缀和 4.2、矩阵区域和 一、前缀和的定义 对于一个…

探索全球DNS体系 | 从根服务器到本地解析

DNS 发展 DNS(Domain Name System)的起源可以追溯到互联网早期。 早期的挑战: 早期互联网主要通过IP地址进行通信,用户需要记住复杂的数字串来访问网站。 需求的催生: 随着互联网的扩大,更简单、易记的…

pytest+allure 生成中文报告

背景 已安装pytestallure,生成的报告是英文 allure生成中文报告 参考:allure report 报告中文化及其它优化 方法1:直接在报告中切换中文 方法2:依赖系统中文语言 创建一个setting.js 文件在index.html 同级目录 // 尝试从 l…

java基于安卓开发的流浪动物救助移动应用的设计与实现-计算机毕业设计源码12783

摘 要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,流浪动物救助系统被用户普遍使用,为方便用户能…

前端面试题-(BFC,前端尺寸单位,网站页面常见的优化手段)

前端面试题-BFC,前端尺寸单位,网站页面常见的优化手段 BFC前端尺寸单位网站页面常见的优化手段 BFC BFC(block formartting context)块格式化上下文。是通过独立渲染的区域,它拥有自己的渲染规则,可以决定…

51单片机LCD1602调试工具

参考视频:江协科技51单片机 LCD1602头文件代码 #ifndef __LCD1602_H__ #define __LCD1602_H__//用户调用函数: void LCD_Init(); void LCD_ShowChar(unsigned char Line,unsigned char Column,char Char); void LCD_ShowString(unsigned char Line,un…

纷享销客盛邀渠道生态伙伴共赴杭州,凝心聚力共谋未来

2024年1月19日,“凝心聚力 勇立潮头——2024纷享销客首场生态伙伴发展共建会”在杭州绿谷举办。此次会议汇聚了各方60余位伙伴到场,共同探讨行业的未来发展趋势,激发创新力和合作潜力。 会上,纷享销客创始人兼CEO罗旭详尽地介绍了…

Qt Designer教程

文章目录 创建一个 ui 文件选择控件Qt Designer基本控件介绍1、Layouts1.1、Layouts 布局1.2、参数配置 2、Spacers2.1、 Spacers 弹簧介绍2.2、 参数设置 3、Buttons 按键3.1、 Buttons 按键分类 4、Item Views(Model-Based) 项目视图(基于模型)4.1、 B…

鸿蒙 HarmonyOS ArkTS 弹窗、带点击回调

// xxx.ets@Entry@Componentstruct Page {@State color: Color = Color.Blue;build() {Column({ space: 20 }) {Button(弹窗).width(180).height(80).backgroundColor(this.color).onClick(()=>{AlertDialog.show({title: 弹窗标题,message: 弹窗内容,autoCancel: true,alig…

状态空间模型(SSM)是近来一种备受关注的 Transformer 替代技术

状态空间模型(SSM)是近来一种备受关注的 Transformer 替代技术,其优势是能在长上下文任务上实现线性时间的推理、并行化训练和强大的性能。而基于选择性 SSM 和硬件感知型设计的 Mamba 更是表现出色,成为了基于注意力的 Transform…

ElasticSearch的集群管理命令

ElasticSearch版本 {"name" : "data-slave1","cluster_name" : "data-es","cluster_uuid" : "xxxxxxxxxx-eMwxw","version" : {"number" : "7.2.1","build_flavor" : &…

重拾计网-第四弹 计算机网络性能指标

ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.5 计算机网络的性能指标(1)_哔哩哔哩_bilibili ​​​ 目录 &#x…

Windows ssh登录eNSP交换机

目录 1. Cloud IO配置1.1 创建UDP端口1.2 创建本地连接1.3 端口映射设置 2. 交换机配置2.1 配置vlanif2.2 配置vty2.3 配置ssh用户2.4 配置aaa2.5 使用Xshell工具登录2.6 用户和密码2.7 登录成功 3. 使用cmd 登录报错提示3.1 手动指定加密算法,提示密码长度无效3.2 …

通过MobaXterm实现串口通信与SSH通信

MobaXterm实现串口通信与SSH MobaXterm简介 MobaXterm是一款终端工具,不仅免费,而且高效,相比于收费的SecureCRT和免费的PuTTy,MobaXterm可谓博采众长。在师兄的建议下,选择这款工具作为终端调试工具。 界面如下图所示…

机器人DH建模

D-H 根据表达式判断所建立的DH模型是标准型(Standard DH)还是改进型(Modified DH) 第三四行的首元素为0的是标准型,参考博客 标准DH参数坐标系建立在传动轴上,而修正DH参数坐标系建立在驱动轴上。修正D…

啊哈c语言——逻辑挑战14(一个萝卜一个坑)

这里有一个有趣的问题:从键盘输入5个0~9的数,然后输出0~9 中那些没有出现过的数。例如,输入2 5 2 1 8时,输出0 3 4 6 7 9。 想一想,有没有什么好办法? 我们这里借助一个数组就可以解…

【数据结构】 链栈的基本操作 (C语言版)

目录 一、链栈 1、链栈的定义: 2、链栈的优缺点: 二、链栈的基本操作算法(C语言) 1、宏定义 2、创建结构体 3、链栈的初始化 4、链栈的进栈 5、链栈的出栈 6、获取栈顶元素 7、栈的遍历输出 8、链栈的判空 9、求链…

车辆 | 平行泊车路径规划碰撞约束及可行驶区域公式推导

注:本文推导参考网上论文并加上了一些自己的理解,侵权删。 一、碰撞约束: 需要先计算D 点(D 点为第一段圆弧路径的终点)位置,再根据 D 点计算C 点范围区域。 其中:Lp为车位长度,最…

【论文阅读】Automated Runtime-Aware Scheduling for Multi-Tenant DNN Inference on GPU

该论文发布在 ICCAD’21 会议。该会议是EDA领域的顶级会议。 基本信息 AuthorHardwareProblemPerspectiveAlgorithm/StrategyImprovment/AchievementFuxun YuGPUResource under-utilization ContentionSW SchedulingOperator-level schedulingML-based scheduling auto-searc…