[Git] 放弃暂存区的修改

news/2025/10/10 20:23:14/文章来源:https://www.cnblogs.com/johnnyzen/p/19133803

1 需求描述

  • 在使用 Git 进行版本控制时,有时我们会在暂存区(staging area)中暂存了一些修改,但后来发现这些修改是不需要的,想要放弃这些修改并恢复到上一次提交的状态。Git 提供了几种方法来实现这一操作。

2 解决方法

方法 : 使用 git restore 命令

Git 2.23 版本引入了 git restore 命令,使得在一条命令中取消暂存和丢弃变得更加简单。使用这个命令,你可以取消对文件的暂存操作并恢复到上一次 commit 时的版本。

git --version# 此命令,2025-10-10 亲测
git restore --staged <file | dir>

上述命令中,<file | dir> 是你想要取消暂存的文件名。这条命令将会将文件从暂存区移除,但保留在工作区中。

方法 : 使用 git reset 命令

  • 另一种常见的取消暂存和丢弃修改的方法是使用 git reset 命令。这个命令可以用来回退到之前的提交状态,同时可以丢弃暂存区和工作区的修改。
git reset HEAD <file>

上述命令中,<file>是你想要取消暂存的文件名。这条命令将会将文件从暂存区移除,并恢复到在最新的 commit 时的状态。

如果你想要彻底丢弃工作区的修改,可以使用 git reset 命令的 --hard 选项。

git reset --hard HEAD

请注意,这条命令将会丢弃工作区的所有修改,包括未暂存的和已经暂存的文件。

方法 : 使用 git checkout 命令

  • 除了 git restoregit reset,你还可以使用 git checkout 来取消暂存和丢弃修改。这个命令可以用来恢复文件到最后一次提交的版本。
git checkout <file>

上述命令中,<file> 是你想要取消暂存和丢弃修改的文件名。这条命令将会丢弃工作区对该文件的修改,并将其恢复到最后一次提交的版本

  • 如果你想要取消暂存和丢弃工作区的所有修改,可以使用下面的命令:
git checkout

请注意,这条命令将会丢弃所有文件的修改,包括已暂存未暂存的文件。

示例说明

假设我们有一个文件叫做 example.txt,其中包含了一些修改。现在让我们做几个示例来演示如何在一条命令中取消暂存和丢弃修改。

  • 首先,我们将文件添加到暂存区:
git add example.txt
  • 接着,我们对文件做了一些修改,但我们意识到这些修改是错误的。现在我们希望取消对文件的暂存并丢弃这些修改。我们可以使用 git restore 命令来实现:
git restore --staged example.txt

这条命令将会将文件从暂存区移除,并将其恢复到最后一次提交的版本2。

  • 另外,如果我们希望彻底丢弃工作区对文件的修改,可以使用 git reset 命令的 --hard 选项:
git reset --hard HEAD example.txt

这条命令将会丢弃工作区对文件的所有修改,包括已经暂存的和未暂存的2。

  • 最后,如果我们希望取消暂存和丢弃工作区的所有修改,可以使用 git checkout 命令:
git checkout

这条命令将会丢弃所有文件的修改,包括已暂存和未暂存的1。

通过以上几种方法,你可以轻松地撤销对文件的暂存和丢弃工作区的修改。根据你的具体需求,选择适合你的方法来处理变更。

Y 推荐文献

  • [GIT] 解决:git status时有Untracked files(未跟踪的文件) - 博客园/千千寰宇

情况1:Add、Commit需提交的文件
情况2:自动忽略(.gitignore)关键文件
情况3:清理掉不需要的文件

  • [GIT] 辨析/区别: git reset HEAD 与 git reset --hard HEAD | 版本回撤 - 博客园/千千寰宇 【推荐】

  • [GIT] 辨析/区别: git add -u | git add -A | git add . [转载] - 博客园/千千寰宇

  • [Git] 解决GIT冲突问题:git pull failed - 博客园/千千寰宇 【推荐】

git pull 时,有代码冲突

X 参考文献

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

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

相关文章

前端里面transform和transition 属性的区别

transform 和 transition 都是用于在 HTML 中控制元素的视觉效果和动画的 CSS 属性,但它们的作用和功能不同。下面详细解释这两个属性的区别: 1. transform 属性 transform 属性允许你对元素进行 2D 或 3D 转换(即对…

【MAC环境】安装多个 JDK - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

CF2064E Mycraft Sand Sort

Sol 首先 \(c\) 不能变,否则第一列就会改变。 然后注意到 \(i,j(i<j)\) 能交换当且仅当满足以下任意一条:\(\displaystyle\max_{k=i+1}^{j-1}a_k<\min(a_i,a_j)\) i+1=j那么考虑从小到大做,每次把小的数删除,…

使用eBPF技术保护FastAPI安全

本文详细介绍如何利用eBPF技术保护面向互联网的API安全,包括FastAPI、Flask、Django等框架。通过secimport工具实现Python代码的实时追踪、沙箱策略构建和运行时监控,有效防御远程代码执行等安全威胁。使用eBPF保护F…

项目案例作业2:对案例进行面向对象分析

学生管理系统面向对象分析报告 小组成员:李天瑞 202421336012 目录学生管理系统面向对象分析报告1. 案例中哪里体现出了封装性及其好处?封装性的体现封装性带来的好处2. 案例中的setter/getter模式与封装性什么是set…

20251010周五日记

20251010周五日记今天十点多回学校了,好不容易不下雨了。没想到国庆还真加了那么多天班= = 今日: 1.早上吃完早饭收拾东西慢慢悠悠回来了,打印朋辈表多亏师哥妙手回春。准备去开学代会,说来又要翘课了。 2.中午吃了…

k8s 主节点重启后 从节点 get 异常 - 教程

k8s 主节点重启后 从节点 get 异常 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

多维索引技术优化数据湖查询性能

本文介绍了一种通过多维索引技术优化数据湖查询性能的解决方案。该技术可直接集成到现有数据湖架构中,支持跨列复杂过滤,提升查询速度最高达6倍,同时降低70%计算成本,兼容主流计算引擎无需重构数据管道。Qbeast获7…

训练笔记:博弈杂题

[7-/7] A. 黎明\(1\sim n\) 排成一个环进行约瑟夫(隔一个删一个),求有多少个时刻,被删除的数的异或和为 \(0\)。 多测 \(10^5\) 组,\(n<10^{18}\)。hint:考虑把约瑟夫的过程分解为 \(\lceil\log n\rceil\) 个…

HTML5拖放API核心功能解析

好的,我们来详细解析一下 HTML5 拖放 API 的核心功能。 HTML5 拖放 API 允许用户在浏览器中抓取一个元素,并将其拖放到另一个位置。它原生支持在浏览器标签页、甚至不同浏览器、乃至桌面应用之间拖放,是现代 Web 应…

[USACO07NOV] Telephone Wire G

dp题,做法有点套路但是一开始没想到。 设 \(dp{_i}_j\) 表示第 \(i\) 位为 \(j\) 的最小花费。 然后直接往下转移就好了。点击查看代码 #include<bits/stdc++.h> #define fir first #define sec second #define…

springboot配置多个数据源

springboot配置多个数据源在我们的实际业务中可能会遇到;在一个项目里面读取多个数据库的数据来进行展示,spring对同时配置多个数据源是支持的。 使用到的框架:springboot+mybatis 方法:在配置文件中配置多个数据源…

Umi-OCR_文字识别工具 免安装使用教程(附下载安装包)!永久免费,开源离线OCR识别软件下载

软件介绍 在外面日常工作汇中,我们经常需要将图片、截图中的文字转换为可编辑文本。Umi-OCR应运而生——这是一款完全开源免费的离线OCR识别工具,无需联网即可本地完成高精度文字识别,保护你的数据隐私同时确保高效…

常量指针 和 指针常量

常量指针 和 指针常量Posted on 2025-10-10 19:52 steve.z 阅读(0) 评论(0) 收藏 举报如何牢记 “常量指针” 和 “指针常量” 的区别?🧩 一、先看词序规律:「前修后主」 在汉语里:前面的词修饰后面的词。比…

PyTorch 神经网络工具箱完全指南 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Apache POI:Java操控Office文档的利器

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【汇总】OPPO r9m 分区名、分区功能

一、分区名、分区功能编号 分区名 英文说明 中文说明 备注、示例0preloaderfastboot 底层系统初始化程序分区 比 u-boot 更底层1pgpt2recovery系统救援工具、维护手机类似电脑PE系统3para4reserve15reserve26reserve37…

完整教程:LVDS系列30:Xilinx 7系 ADC LVDS接口参考设计(一)

完整教程:LVDS系列30:Xilinx 7系 ADC LVDS接口参考设计(一)2025-10-10 19:48 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !import…

【JAVA】从入门到放弃-01-HelloWorld - 指南

【JAVA】从入门到放弃-01-HelloWorld - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &quo…