git reset --soft(回退commit,保留add)

news2025/4/24 12:35:05

参考博客:git reset --soft命令的使用-CSDN博客
感觉博客中举的例子不是很好。读者自行判断。举的例子的场景适合使用revert,撤销就行了。
另外建议看下边这篇博客,这篇详细介绍了reset和revert,带图。但是要注意这个reset是hard的,
和reset --soft还是有些区别。
Git恢复之前版本的两种方法reset、revert(图文详解)_git回退到某个版本-CSDN博客

另外本文也是个人理解,如有错误请读者帮忙指正评论,谢谢。

起因

原因是工作中git push了代码,发现有问题,然后我及时废弃(相当于没有push上去),也就是本地有commit记录,但是远程没有push,回退这次的commit到上一次提交,保留本次的add内容,并对文件进行补充或者修改。

命令解释

简而言之就是git reset --soft commitid 撤销commitid前所有的commit,常适用于你commit之后,发现这次commit有问题,然后回退到上一个版本,但是你想保留你add的文件,也就是在暂存区和工作区里面
如下图git 工作原理图
image.png

例子解释

emmm,感觉还是有有必要去写个例子,还是怕有人听不太懂。

初始化git模拟环境

首先创建一个test的文件夹,然后git init。
使用touch 命令,touch a.txt。
然后git add . 添加到暂存区
git commit -m “第一次提交 a.txt” 提交到本地仓库
git log 查看提交记录

touch a.txt
git add .
git commit -m "第一次提交 a.txt"
git log 

image.png

提交

和上面操作差不多,直接贴代码。

touch b.txt
git add .
git commit -m "第二次提交 b.txt"
git log

image.png

提交错了,及时回退并补充

好巧不巧,你发现你提交的b.txt文件忘记添加内容了,这时候你又不想重新touch b.txt,想保留暂存区和工作区的内容。上命令回退。

git reset --soft b72174baf38ca89647db1a0989f07a2acd49bed8
git log
git status .

image.png
image.png

vim b.txt 添加想要补充的内容

vim b.txt

git add .
git commit -m "第二次提交 b.txt"
git log
git status .

cat b.txt

image.png
image.png
image.png
这时候就补充上你上一次忘记补充的内容了。

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

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

相关文章

mysql 内存一直增长(memory/sql/thd::main_mem_root)

mysql版本 8.0.14 发现过程 查询总内存 SELECT t.EVENT_NAME, t.CURRENT_NUMBER_OF_BYTES_USED FROM performance_schema.memory_summary_global_by_event_name t ORDER BY t.CURRENT_NUMBER_OF_BYTES_USED DESC;前: memory/sql/thd::main_mem_root 1…

第十五天啦 2024.8.1 (Spring框架)

1.从宏观上看spring框架和springboot Spring框架解决了企业级的开发的复杂性,它是一个容器框架,用于装java对象(Bean),使程序间的依赖关系交由容器统一管理,松耦合,提高了可测试性和维护效率&a…

网络原理的TCP/IP

TCP/IP协议 1)应用层 应用层和应用程序直接相关,与程序员息息相关的一层协议,应用层协议,里面描述的内容,就是写的程序,通过网络具体按照啥样的方式来进行传输,不同的应用程序,就可以用不同的应用层协议,在实际开发的过程中,需要程序员自制应用层协议 应用层协议本质上就是对…

主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件

主题巴巴WordPress主题合辑打包下载,包含博客一号、博客二号、博客X、门户一号、门户手机版、图片一号、杂志一号、自媒体一号、自媒体二号和主题巴巴SEO插件。

5行代码快速Git配置ssh

0 流程步骤 检查本地主机是否已经存在ssh key生成ssh key获取ssh key公钥内容(id_rsa.pub)复制该内容,到Github账号上添加公钥,进入Settings设置验证是否设置成功 1 代码 # 1.检查本地主机是否已经存在ssh key cd ~/.ssh ls # …

Notepad++ 安装 compare 插件

文章目录 文章介绍对比效果安装过程参考链接 文章介绍 compare 插件用于对比文本差异 对比效果 安装过程 搜索compare插件 参考链接 添加链接描述

权威认可!聚铭网络再度入选中国信通院《中国数据库产业图谱(2024年)》

7月16日,由中国信息通信研究院、中国通信标准化协会指导,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)、InfoQ联合主办的“2024可信数据库发展大会”在京召开。会上,正式发布《中国数据库产业图谱&#xf…

《电子技术》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《电子技术》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《电子技术》级别? 答:省级。主管单位:上海科学技术协会 主办单位:上海…

基于N32L406+FlashDB(键值数据库 时序数据库)+mdk5 移植教程

这里首先感谢作者的开源: FlashDB: 一款支持 KV 数据和时序数据的超轻量级数据库 (gitee.com) 1.FlashDB简介 一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。FlashDB 不仅支持传统的基于文件系统的数据库模式,而且结合了…

【YOLOv8】一文全解+亮点介绍+训练教程+独家魔改优化技巧

前言 Hello,大家好,我是cv君,最近开始在空闲之余,经常更新文章啦!除目标检测、分类、分隔、姿态估计等任务外,还会涵盖图像增强领域,如超分辨率、画质增强、降噪、夜视增强、去雾去雨、ISP、海…

o(∩_∩)o设置代理访问博客(五)o(∩_∩)o --使用BeeWare打包应用

背景: 最近了解了一个新的打包框架BeeWare,据说他支持的平台要比nuitka更多。利用之前访问博客的脚本,来尝试一下打包windows应用程序。 BeeWare 从零开始 环境:python -m pip install briefcase 使用pycharm新建了一个名为bee…

【HTML入门】第二十一课 - 【实战】做一个简单的数据表格

这一小节,我们继续练习纯HTML,开发一个简单的数据表格吧。就像这样: 目录 1 设计需求分析 2 用到的标签 3 实战代码 1 设计需求分析 做之前,我们仍然是分析一下这张图,以便更好的更快的开发出来。 分2个大部分第一个…

掌控板(为Python编程学习而生)文章目录+入门教程 简介

前言 文章目录 掌控入门系列教程目录 【Mind】掌控板入门教程01 “秀”出我创意 【Mind】掌控板入门教程02 趣味相框 【Mind】掌控板入门教程03 节日的祝福【Mind】掌控板入门教程04 迷你动画片【Mind】掌控板入门教程05 心情灯【Mind】掌控板入门教程06 多彩呼吸灯【Mind】掌…

word预览方式---iframe,Microsoft Office Online、xDoc、Google Docs

提示:word预览方式—iframe 文章目录 [TOC](文章目录) 前言一、Microsoft Office Online二、xDoc三、Google Docs四、预览组件总结 前言 使用vue/cli脚手架vue create创建 一、Microsoft Office Online https://view.officeapps.live.com/op/view.aspx?src二、xDo…

java的命令执行漏洞揭秘

0x01 前言 在Java中可用于执行系统命令常见的方式有两种,API为:java.lang.Runtime、java.lang.ProcessBuilder 0x02 java.lang.Runtime GetMapping("/runtime/exec")public String CommandExec(String cmd) {Runtime run Runtime.getRunti…

关于#define的使用方法总结

文章目录 #define 预处理指令一、#define宏定义二、查看预处理文件三、#define 的使用方法四、C语言宏中“#”和“##”的用法五、常见的宏定义总结六、常考题目 #define 预处理指令 #define 是 C 和 C 编程语言中的预处理指令,用于定义宏(macro&#xf…

JVM系列 | 对象的消亡——HotSpot的设计细节

HotSpot 的细节实现 文章目录 HotSpot 的细节实现OopMap 与 根节点枚举根节点类型及说明HotSpot中的实现 OopMap 与 安全点安全点介绍如何保证程序在安全点上? 安全区域记忆集与卡表记忆集卡表 写屏障并发的可达性分析(与用户线程)并发可达性…

计算机底层知识点(一)晶体管与CPU执行指令之间的联系

该文主要通过详细介绍晶体管在CPU执行指令时的作用。本文所讲解例子为NPN型二极管。这里简单介绍一下,NPN是共阳极,即两个NP结的P结相连为基极,另两个N结分别做集电极和发射极,发射极电流 集电极电流 基极电流。 图5 LED两脚分别…

【Vue3】具名插槽

【Vue3】具名插槽 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日子。本文内…

纯技术手段实现内网穿透,免注册免收费

纯技术手段实现内网穿透,免注册免收费 一、内网穿透二、方法分类2.1 基于隧道协议的内网穿透2.2 基于反向代理的内网穿透2.3 基于SSH的内网穿透具体工具的分类如下:基于隧道协议基于反向代理基于SSH 三、本文方法四、具体操作4.1 安装服务端4.2 安装客户…