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

撤销最近一次的提交,使用git revert 和 git reset的区别

文章目录

    • 工作区 暂存区 本地仓库 远程仓库
    • 需求:已推送到远程仓库,想要撤销操作
    • git revert (添加新的提交来“反做”之前的更改,云端会残留上次的提交记录)
    • git reset(相当于覆盖上次的提交)
      • 1.--soft:
      • 2.--mixed (默认选项):
      • 3. --hard:
      • 注意事项
    • 说明:
      • 参考:
    • 附录:git revert的详细说明

工作区 暂存区 本地仓库 远程仓库

在这里插入图片描述

需求:已推送到远程仓库,想要撤销操作

git revert (添加新的提交来“反做”之前的更改,云端会残留上次的提交记录)

如果你已经将提交推送到了远程仓库,并且想要撤销这次提交,你可以使用 git revert 命令。

如果你只是要撤销最近的一次提交,可以使用 HEAD 指针来引用它:

git revert HEAD

**请注意,使用 git revert 并不会从项目历史中删除任何提交,这个命令会创建一个新的提交,这个新提交会“反做”之前的提交,从而撤销那些更改。这样做的好处是不会改变项目的历史记录,因此是协作项目中推荐的做法。

git reset(相当于覆盖上次的提交)

如果你需要彻底从历史记录中删除提交,那么需要考虑使用 git reset 并之后使用 --force 选项与远程仓库同步,但这种做法风险较高,因为它会改变项目的历史记录。**

1.–soft:

撤销最后一次提交,但是保留更改在暂存区。提交信息和更改都会撤销,但是更改的内容还在暂存区,可以重新提交。

git reset --soft HEAD~1

2.–mixed (默认选项):

撤销最后一次提交,但是保留更改在工作目录。提交信息会被撤销,更改的内容会保留在工作目录中,需要重新暂存和提交。

git reset --mixed HEAD~1

这是默认的 git reset 行为。它会重置 HEAD 和暂存区到指定的提交,但不改变工作目录。
相当于 git reset HEAD~1

3. --hard:

撤销最后一次提交,并且丢弃所有更改。提交信息和更改都会被永久丢弃,工作目录、暂存区和HEAD都会回退到上一个提交的状态。

git reset --hard HEAD~1
  • 如果你使用 --hard,你将失去最后一次提交的所有更改,这是不可逆的。如果你使用 --soft 或 --mixed,你将保留更改,可以重新提交。

注意事项

  • 如果你的更改已经推送到了远程仓库,并且其他人可能已经基于这些更改进行了操作,使用 --hard 重置可能会导致问题。

  • 如果你使用 --soft 重置,并且想要撤销更改,你可以使用 git clean 来清除未提交的更改:

    git clean -fd
    

    这个命令会删除未跟踪的文件和目录,-f 表示强制,-d 表示删除目录。

说明:

git reset 用于移动 HEAD 指针,git reset之后云端仍有上次提交的记录,所以撤销之后的重新提交需要在git push之后加上 -f 用于强制覆盖上次不用的提交。直接git push会出现问题

git push  --force

参考:

  • git提交错了?别慌,直接删除提交记录:https://blog.csdn.net/weixin_45334346/article/details/138388941

附录:git revert的详细说明

如果你已经将提交推送到了远程仓库,并且想要撤销这次提交,你可以使用 git revert 命令。这个命令会创建一个新的提交,这个新提交会“反做”之前的提交,从而撤销那些更改。这样做的好处是不会改变项目的历史记录,因此是协作项目中推荐的做法。

以下是使用 git revert 命令的步骤:

  1. 找到要撤销的提交的哈希值
    使用 git log 查看提交历史,并找到你想要撤销的提交的哈希值。

  2. 执行 revert 操作
    使用 git revert 命令加上提交的哈希值来撤销这次提交:

    git revert [提交哈希值]
    

    如果你只是要撤销最近的一次提交,可以使用 HEAD 指针来引用它:

    git revert HEAD
    
  3. 解决可能出现的冲突(如果有的话):
    如果撤销过程中出现冲突,Git 会停止并让你手动解决这些冲突。解决完冲突后,你需要添加这些更改到暂存区并完成 revert 操作:

    git add [解决冲突的文件]
    git revert --continue
    
  4. 推送 revert 操作到远程仓库
    完成 revert 操作并测试没有问题后,将这次 revert 提交推送到远程仓库:

    git push origin [分支名]
    

请注意,使用 git revert 并不会从项目历史中删除任何提交,它只是添加一个新的提交来“反做”之前的更改。如果你需要彻底从历史记录中删除提交,那么需要考虑使用 git reset 并使用 --force 选项与远程仓库同步,但这种做法风险较高,因为它会改变项目的历史记录。

相关文章:

撤销最近一次的提交,使用git revert 和 git reset的区别

文章目录 工作区 暂存区 本地仓库 远程仓库需求:已推送到远程仓库,想要撤销操作git revert (添加新的提交来“反做”之前的更改,云端会残留上次的提交记录)git reset(相当于覆盖上次的提交)1.--…...

MySQL详细安装、配置过程,多图,详解

本文适合centos7环境下安装mysql,在安装和卸载过程中,都在root用户下完成。文章目录 清理环境获取mysql官方yum源安装mysql yum源安装mysql服务安装报错解决办法验证是否安装完成启动mysql服务登录服务方法一:方法二:方法三&#…...

音视频学习规划

文章目录 概述闲聊点 小结 概述 最近在学习音视频,觉得还是要先写个提纲,给自己制定下学习路线及目标。先写下我的个人流程及思路。 ffmpeg的命令ffmpeg api播放器流媒体RTMP,HLS 闲聊点 先说下学习命令行吧,学习命令行是为了…...

代码随想录算法训练营第21天|● 530.二叉搜索树的最小绝对差 ● 501.二叉搜索树中的众数 ● 236. 二叉树的最近公共祖先

二叉搜索树的最小绝对差 题目连接 https://leetcode.cn/problems/minimum-absolute-difference-in-bst/ 思路: 利用二叉搜索树的中序遍历的特性,将二叉树转成有序数组,进而求任意两个数的最小绝对差。 代码 /*** Definition for a bina…...

K8S中Prometheus+Grafana监控

1.介绍 phometheus:当前一套非常流行的开源监控和报警系统。 运行原理:通过HTTP协议周期性抓取被监控组件的状态。输出被监控组件信息的HTTP接口称为exporter。 常用组件大部分都有exporter可以直接使用,比如haproxy,nginx,Mysql,Linux系统信…...

题解:CF1968F(Equal XOR Segments)

题解:CF1968F(Equal XOR Segments) 题目翻译:定义一个序列是好,当且仅当可以将其分成大于 1 1 1 份,使得每个部分的异或和相等。现在给定一个长度为 n n n 的序列 a a a,以及 q q q 次查询…...

Python操作MySQL实战

文章导读 本文用于巩固Pymysql操作MySQL与MySQL操作的知识点,实现一个简易的音乐播放器,拟实现的功能包括:用户登录,窗口显示,加载本地音乐,加入和删除播放列表,播放音乐。 点击此处获取参考源…...

【Linux系统】进程间通信

本篇博客整理了进程间通信的方式管道、 system V IPC的原理,结合大量的系统调用接口,和代码示例,旨在让读者透过进程间通信去体会操作系统的设计思想和管理手段。 目录 一、进程间通信 二、管道 1.匿名管道 1.1-通信原理 1.2-系统调用 …...

北大国际医院腹膜后纤维化课题组 多学科协作开辟治疗新径

腹膜后纤维化(Retroperitoneal Fibrosis,简称RPF)是一种罕见的自身免疫性疾病,其核心特征是纤维组织的异常增生与硬化。这种疾病主要影响肾脏下方的腹主动脉和髂动脉区域,增生的纤维组织会逐渐压迫周围的输尿管和下腔静脉,从而导致一系列并发症,包括主动脉瘤、肾功能衰竭等,甚至…...

面试数据库八股文十问十答第七期

面试数据库八股文十问十答第七期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)索引是越多越好吗&#xff…...

【C++题解】1133. 字符串的反码

问题:1133. 字符串的反码 类型:字符串 题目描述: 一个二进制数,将其每一位取反,称之为这个数的反码。下面我们定义一个字符的反码。 如果这是一个小写字符,则它和字符 a 的距离与它的反码和字符 z 的距离…...

【Python编程实战】基于Python语言实现学生信息管理系统

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…...

AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情

电视猫上面有《庆余年》分集剧情&#xff0c;如何批量爬取下来呢&#xff1f; 先找到每集的链接地址&#xff0c;都在这个class"epipage clear"的div标签里面的li标签下面的a标签里面&#xff1a; <a href"/drama/Yy0wHDA/episode">1</a> 这个…...

md5强弱碰撞

一&#xff0c;类型。 1.弱比较 php中的""和""在进行比较时&#xff0c;数字和字符串比较或者涉及到数字内容的字符串&#xff0c;则字符串会被转换为数值并且比较按照数值来进行。按照此理&#xff0c;我们可以上传md5编码后是0e的字符串&#xff0c;在…...

【Docker故障处理篇】运行容器报错“docker: failed to register layer...file exists.”解决方法

【Docker故障处理篇】运行容器报错“docker: failed to register layer...file exists.” 一、Docker环境介绍2.1 本次环境介绍2.2 本次实践介绍二、故障现象2.1 运行容器消失2.2 重新运行容器报错三、故障分析四、故障处理4.1 停止 Docker 服务:4.2 备份重要数据4.3 清理冲突…...

小红书-社区搜索部 (NLP、CV算法实习生) 一面面经

😄 整个流程按如下问题展开,用时60min左右面试官人挺好,前半部分问问题,后半部分coding一道题。 各位有什么问题可以直接评论区留言,24小时内必回信息,放心~ 文章目录 1、自我介绍2、介绍下项目:微信-多模态小视频分类2.1、看你用了cross-att来融合多模态信息,cross…...

解读makefile中的.PHONY

在 Makefile 中&#xff0c;.PHONY 是一个特殊的目标&#xff0c;用于声明伪目标&#xff08;phony target&#xff09;。伪目标是指并不代表实际构建结果的目标&#xff0c;而是用来触发特定动作或命令的标识。通常情况下&#xff0c;.PHONY 会被用来声明一组需要执行的动作&a…...

linux配置防火墙端口

配置防火墙&#xff0c;添加或删除端口&#xff0c;需要有root权限。 防火墙常用命令如下&#xff1a; 1.查看防火墙状态&#xff1a; systemctl status firewalld active(running)&#xff1a;开启状态&#xff0c;正在运行中 inactive(dead)&#xff1a;关闭状态&#xff…...

sklearn线性回归--岭回归

sklearn线性回归--岭回归 岭回归也是一种用于回归的线性模型&#xff0c;因此它的预测公式与普通最小二乘法相同。但在岭回归中&#xff0c;对系数&#xff08;w&#xff09;的选择不仅要在训练数据上得到好的预测结果&#xff0c;而且还要拟合附加约束&#xff0c;使系数尽量小…...

三十一、openlayers官网示例Draw Features解析——在地图上自定义绘制点、线、多边形、圆形并获取图形数据

官网demo地址&#xff1a; Draw Features 先初始化地图&#xff0c;准备一个空的矢量图层&#xff0c;用于显示绘制的图形。 initLayers() {const raster new TileLayer({source: new XYZ({url: "https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...