git reset版本回退后悔药(图文例子)

news2024/11/15 8:26:34

目录

    • 版本回退
      • 前期测试样例准备
      • git reset --soft 不撤销add,撤销commit,保留修改
      • git reset --mixed 或 git reset () 撤销add,撤销commit,保存修改
      • git reset --hard 撤销add,撤销commit,不保存修改
      • git reset --merge 取消合并
      • git reset --keep 不撤销add,撤销commit,根据情况判断区别与mixed
        • 第一种情况
        • 第二种情况发生了合并冲突
    • 总结


欢迎关注 『发现你走远了』 博客,持续更新中
欢迎关注 『发现你走远了』 博客,持续更新中

版本回退

自从通过ide插件去实现之后 git命令统统忘光了~
但是面试要求会考`还是记录一下吧~

前期测试样例准备

我们修改了txt的内容并进行一次提交

git add .
git commit

在这里插入图片描述

然后再次修改txt
在这里插入图片描述

可以发现此时因为没有add,出现了被追踪但是没有提交的文件红色警告

git status

在这里插入图片描述
查看提交历史看到确实增加了提交历史总共有3次,第一次是一开始时候的默认提交,第二次提交的哈希值100c6c8ce803b4067f65f7fb13a2723ee30db16c

git log

在这里插入图片描述

git reset --soft 不撤销add,撤销commit,保留修改

保留工作目录和暂存区的修改,将 HEAD 指向指定的提交,相当于取消提交并将更改放回暂存区。(撤销了commit,但是没有撤销add,此时你可以直接commit提交)

根据哈希值还原到第二次的提交文件,这里的commit是哈希值,因为我们这从第3次提交回退到第2次提交,是回退到上一个版本,所以可以HEAD^1代表哈希值

git reset --soft <commit>

git reset --soft 100c6c8ce803b4067f65f7fb13a2723ee30db16c
git reset --soft HEAD^1

可以看到此时的txt内容不变仍然是我们提交之前的,但是git log会发现第三次提交没了.
在这里插入图片描述
也就是说,你回到了你第三次提交之前,回退了add和commit的命令

  • 将当前分支的 HEAD 指针移动到指定的提交(commit)100c6c8ce803b4067f65f7fb13a2723ee30db16c,这意味着当前分支会回退到这个提交之前的状态。
  • 保留之后的更改在暂存区中,这意味着之后的更改不会被取消暂存。
  • 保留工作目录中的修改,这意味着工作目录中的文件不会被改变。

git reset --mixed 或 git reset () 撤销add,撤销commit,保存修改

默认行为,保留工作目录的修改,但不会保留暂存区的修改,将 HEAD 指向指定的提交,相当于取消提交并将更改放回工作目录。(撤销了add和commit,下次提交你需要add后才能commit)

git reset --mixed <commit> 
或
git reset <commit>

git reset --mixed HEAD^1

在这里插入图片描述

git reset --hard 撤销add,撤销commit,不保存修改

重设 HEAD 到指定提交,并丢弃工作目录和暂存区中的所有修改,慎用,会永久丢失未提交的修改。
(回退add回退commit并且回到上次刚刚提交后的状态,放弃了所有修改,慎用)

git reset --hard <commit>

git reset --merge 取消合并

git reset --merge <commit>

用于取消一个合并,并将 HEAD 指向合并前的状态。

git reset --merge 的作用包括:

  • 将当前分支指向合并之前的状态,撤销合并操作。
  • 保留工作目录和暂存区的文件状态,让你可以重新处理合并,解决冲突或者进行其他操作。

git reset --keep 不撤销add,撤销commit,根据情况判断区别与mixed

类似于 --hard,但会保留未提交的本地修改。

当使用 git reset --keep 命令时,版本库会回退到指定的提交,同时清空暂存区,并且会根据情况保留或重置工作目录中的文件状态。

第一种情况

如果工作区中的文件在当前版本和回退版本之间没有发生过变动,那么工作区的修改将被保留,不会受影响。

git reset --keep  <commit>
git reset --keep  HEAD^1

可以发现此时的版本回退了,但是文件内容改为了原来的,git log后发现第三次提交没有了,并且可以直接commit无需add
在这里插入图片描述

第二种情况发生了合并冲突

如果工作区中的文件在当前版本和回退版本之间有发生过变动,并且工作区也进行了修改,那么需要手动合并这些变动或解决可能出现的冲突。
在我们执行keep之前先修改了txt的内容,就会有如下报错,提示合并冲突
在这里插入图片描述

在这里插入图片描述


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2022 mzh

Crated:2022-2-1

欢迎关注 『发现你走远了』 博客,持续更新中
欢迎关注 『发现你走远了』 博客,持续更新中


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

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

相关文章

数据可视化-ECharts Html项目实战(7)

在之前的文章中&#xff0c;我们学习了如何设置漏斗图、仪表盘。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下你宝贵的点赞&#xff0c;谢谢 数据可视化-ECharts Html项目实战&#xff08;6…

Spring Boot 3核心技术介紹集应用实例

文章目录 核心技术1. **配置管理**&#xff1a;2. **Starter依赖**&#xff1a;3. **自动配置**&#xff1a;4. **启动过程与扩展应用**&#xff1a;5. **日志管理**&#xff1a;6. **数据访问**&#xff1a;7. **计划任务**&#xff1a;8. **缓存**&#xff1a;9. **消息队列*…

RSTP环路避免实验(思科)

华为设备参考&#xff1a;RSTP环路避免实验&#xff08;华为&#xff09; 一&#xff0c;技术简介 RSTP (Rapid Spanning Tree Protocol) 是从STP发展而来 • RSTP标准版本为IEEE802.1w • RSTP具备STP的所有功能&#xff0c;可以兼容STP运行 • RSTP和STP有所不同 减少了…

拥抱C++的深度和复杂性,挖掘更多可能 !——《C++20高级编程(第5版)》

&#xff0c;C难以掌握&#xff0c;但其广泛的功能使其成为游戏和商业软件应用程序中最常用的语言。即使是有经验的用户通常也不熟悉许多高级特性&#xff0c;但C20的发布提供了探索该语言全部功能的绝佳机会。《C20高级编程(第5版)》为C的必要内容提供了一个代码密集型、面向解…

蓝桥杯学习笔记(贪心)

在很久很久以前&#xff0c;有几个部落居住在平原上&#xff0c;依次编号为1到n。第之个部落的人数为 t 有一年发生了灾荒&#xff0c;年轻的政治家小蓝想要说服所有部落一同应对灾荒&#xff0c;他能通过谈判来说服部落进行联台。 每次谈判&#xff0c;小蓝只能邀请两个部落参…

【软考高项】十九、项目管理概论之价值驱动的项目管理知识体系

1、项目管理知识体系概述 重点记忆项目管理涉及内容&#xff1a;12项项目管理原则-10大知识领域&#xff08;10大管理&#xff09;-8大绩效域-5类过程组-4项生命周期-价值交付系统-组织战略和目标实现 2、项目管理原则 勤勉、尊重和关心他人 ①关注组织内部和外部的职责; ②坚…

[深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现二

【简单介绍】 基于目标检测算法YOLOv8和灵活的PyQt5界面开发框架&#xff0c;我们精心打造了一款集直观性、易用性和功能性于一体的目标检测GUI界面。通过深度整合YOLOv8在目标识别上的卓越能力与PyQt5的精致界面设计&#xff0c;我们成功研发出一款既高效又稳定的软件GUI。 …

Unity 布局控制器Content Size Fitter

Content Size Fitter是Unity中的一种布局控制器组件&#xff0c;用于根据其内容的大小来调整包含它的UI元素的大小。换句话来说就是&#xff0c;Content Size Fitter可以根据UI元素内部内容的大小&#xff0c;自动调整UI元素的大小&#xff0c;以确保内容能够正确显示。 如下图…

基于SpringBoot+MyBatis校园周边美食探索及分享平台

采用技术 基于SpringBootMyBatis校园周边美食探索及分享平台的设计与实现~ 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBootMyBatis 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 页面展示效果 功能清单 前台首页 登录页面 美食鉴赏界面…

设计模式之适配器模式解析

适配器模式 1&#xff09;概述 将一个接口转换成用户希望的另一个接口&#xff0c;使接口不兼容的那些类可以一起工作&#xff0c;其别名为包装器(Wrapper)&#xff1b; 在适配器模式中&#xff0c;通过增加一个新的适配器类来解决接口不兼容的问题&#xff0c;使得原本没有…

聚观早报 | 全新腾势N7将上市;哪吒L将于4月上市

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 3月26日消息 全新腾势N7将上市 哪吒L将于4月上市 比亚迪海豹荣耀版上市 vivo X Fold3细节曝光 一加Ace 3V正式开…

51单片机学习笔记10 IIC通讯和EEPROM

51单片机学习笔记10 IIC通讯和EEPROM 一、IIC通讯简介1. 基本特点优点缺点 2. 工作模式3. 整体流程4. 信号流程**起始信号****停止信号****应答信号**非应答信号主机等待从机应答完整写入过程完整读取过程 二、AT24C02 芯片介绍1. 引脚介绍2. 典型总线配置 三、开发示例1. 硬件…

Windows如何搭建 ElasticSearch 集群

单机 & 集群 单台 Elasticsearch 服务器提供服务&#xff0c;往往都有最大的负载能力&#xff0c;超过这个阈值&#xff0c;服务器 性能就会大大降低甚至不可用&#xff0c;所以生产环境中&#xff0c;一般都是运行在指定服务器集群中。 除了负载能力&#xff0c;单点服务器…

vscode安装mysql相关插件

在Visual Studio Code (VSCode) 中安装 MySQL 客户端插件可以让你在 VSCode 中直接连接到 MySQL 数据库&#xff0c;并执行 SQL 查询。以下是如何安装和使用 MySQL 客户端插件的步骤&#xff1a; 1.打开 VSCode。 2.按下 Ctrl Shift X 打开扩展商店&#xff08;或点击侧边栏…

React Native 应用打包

引言 在将React Native应用上架至App Store时&#xff0c;除了通常的上架流程外&#xff0c;还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

200W无感厚膜电阻-SOT227模压系列大功率电阻

EAK的200W-900W的厚膜无感电阻 SOT 227封装 安装在风冷或水冷散热器上的高功率电阻器 全树脂填充结构&#xff0c;散热片与电阻之间高绝缘电压 6个不同的版本 缓冲电阻 分压器 分断电阻 EAK封装SOT-227厚膜无感功率电阻 阻值范围:0.1Ω~1MQ 精度范围:1%~士10% 温度系数:…

命令模式(请求与具体实现解耦)

目录 前言 UML plantuml 类图 实战代码 模板 Command Invoker Receiver Client 前言 命令模式解耦了命令请求者&#xff08;Invoker&#xff09;和命令执行者&#xff08;receiver&#xff09;&#xff0c;使得 Invoker 不再直接引用 receiver&#xff0c;而是依赖于…

【超图 SuperMap3D】【基础API使用示例】52、超图SuperMap3D - 绘制点|线|多边形面的缓冲区

前言 引擎下载地址&#xff1a;[添加链接描述](http://support.supermap.com.cn/DownloadCenter/DownloadPage.aspx?id2524) 绘制缓冲区主要依赖[turfjs](https://turfjs.org/docs/#buffer) 先根据点线面的数据turfjs计算得到缓冲区的坐标数据&#xff0c;再行绘制效果 完整代…

docker访问宿主机的localhost

前言 在我们使用docker的时候我们会发现访问宿主机的ip的地址是一件比较麻烦的事情&#xff0c;因为宿主机如果处于不同的网段中他的ip地址是在不断的改变之中&#xff0c;那么如何访问宿主机的本地地址localhost成为了一件比较麻烦的事情&#xff0c;本文就介绍一种最简单访问…

JVM篇详细分析

JVM总体图 程序计数器&#xff1a; 线程私有的&#xff0c;每个线程一份&#xff0c;内部保存字节码的行号&#xff0c;用于记录正在执行字节码指令的地址。&#xff08;可通过javap -v XX.class命令查看&#xff09; java堆&#xff1a; 线程共享的区域&#xff0c;用来保存对…