14-reset 的本质
前面讲到在最新的commit写错时可以用reset --hard来把commit撤销git reset --hard HEAD^用这行代码可以撤销掉当前commit现在就说说reset命令的本质分析它在撤销提交之外的用途。reset 的本质移动 HEAD 以及它所指向的 branchreset这个指令虽然可以用来撤销commit但它的实质行为并不是撤销而是移动HEAD并且「捎带」上HEAD所指向的branch如果有的话。也就是说reset这个指令的行为其实和它的字面意思 reset重置十分相符它是用来重置HEAD以及它所指向的branch的位置的。而reset --hard HEAD^之所以起到了撤销commit的效果是因为它把HEAD和它所指向的branch一起移动到了当前commit的父commit上从而起到了「撤销」的效果Git 的提交历史只能往回看不能向未来看所以把HEAD和branch往回移动就能起到撤回commit的效果。reset使用--hard选项不仅可以撤销提交还可以用来把HEAD和branch移动到其他任何地方。git reset --hard branch2那么reset后面总是跟着的那个--hard是什么意思呢reset指令可以重置HEAD和branch引用的commit ID不过在重置它们的同时对工作目录可以选择不同的操作对工作目录不同操作就是通过reset后面跟不同的参数来确定的。reset --hard重置工作目录重置暂存区当你在reset后面加了--hard参数时你工作目录里的内容会被完全重置为和HEAD的新位置相同的内容你工作目录中未提交的修改也会被全部擦除掉。例如你在上次commit之后对文件做了一些改动git status然后你执行了reset并附上了--hard参数git reset --hard HEAD^结果就是你的HEAD和当前branch切到上一条commit的同时你工作目录里的新改动也一起全都消失了不管它们是否被放进暂存区因为暂存区也和工作目录一样会被新位置的内容替换git status可以看到在reset --hard后所有的改动都被擦掉了。reset --soft保留工作目录差异放到暂存区reset --soft会在重置HEAD和branch时更改指向的commit保留工作目录和暂存区中的内容并把重置HEAD所带来的新的差异放进暂存区。什么是「重置HEAD所带来的新的差异」就是这里由于HEAD从4移动到了3而且在reset的过程中工作目录的内容没有被清理掉所以4中的改动在reset后就也成了工作目录新增的「工作目录和HEAD的差异」。所以在同样的情况下git status当前commit的改动内容是新增了laughters.txt文件git show --stat如果这时你执行git reset --soft HEAD^那么除了HEAD和它所指向的branch1被移动到HEAD^之外原先HEAD处commit的改动也就是那个laughters.txt文件也会被放进暂存区git status这就是--soft和--hard的区别--hard会清空工作目录的改动而--soft则会保留工作目录的改动并把因为保留工作目录内容所带来的新的文件差异放进暂存区。reset 不加参数保留工作目录并清空暂存区reset如果不加参数那么默认使用--mixed参数。它的行为是保留工作目录并且清空暂存区。也就是说工作目录的修改、暂存区的内容以及由reset所导致的新的文件差异都会被放进工作目录。简而言之就是「把所有差异都混合mixed放在工作目录中」。还以同样的情况为例git status修改了games.txt和shopping list.txt并把games.txt放进了暂存区。git show --stat最新的commit中新增了laughters.txt文件。这时如果你执行无参数的resetgit reset HEAD^工作目录的内容和--soft一样会被保留但和--soft的区别在于它会把暂存区清空git status小结本节内容讲了reset指令的本质重置HEAD及其所指向branch的位置。同时介绍了reset的三种参数--hard重置HEAD指向位置的同时清空工作目录的所有改动--soft重置HEAD指向位置的同时保留工作目录和暂存区的内容并把重置HEAD指向位置所导致的新的文件差异放进暂存区。--mixed重置HEAD指向位置的同时保留工作目录的内容、清空暂存区并把重置HEAD指向位置所导致的新的文件差异都混合放进工作目录中默认操作。除了上面这三种参数还有一些没有列出的较为不常用的参数另外除了这三种功能外其实reset其实也还有一些别的功能和用法。不过reset最关键的功能、用法和本质原理就是上面这些想了解更多的话可以去官网了解一下。

相关新闻

Go 工作区workspace使用保姆级指南

Go 工作区workspace使用保姆级指南

如果你曾在一个大型 Go 项目中,需要同时修改多个模块,你一定经历过这样的场景:你不得不打开 go.mod,添加一行 replace 指令,指向你本地的另一个模块。这就像一次“临时婚姻”——它有效,但每次都要求你处理…

2026/8/7 10:59:11 阅读更多 →
Selenium与XPath:Web自动化测试的核心技术解析

Selenium与XPath:Web自动化测试的核心技术解析

1. Selenium与XPath入门:Web自动化测试的核心武器 刚接触Web自动化测试时,我被各种元素定位方式搞得晕头转向,直到系统掌握了XPath语法才发现——原来精准定位页面元素可以如此优雅。作为Selenium自动化测试的第一阶段核心技能,XP…

2026/8/7 10:59:11 阅读更多 →
Amazon 卖家物流,黑五备货提前,美东港口拥堵,FBA 卖家需要避开哪些坑

Amazon 卖家物流,黑五备货提前,美东港口拥堵,FBA 卖家需要避开哪些坑

每一年 Q4 黑五、圣诞大促,都是跨境卖家全年最重要的销售窗口。2026 年的旺季备货周期进一步前置,不少卖家已经从八月就启动补货计划。但今年美东区域叠加港口码头调整、舱位紧张、卡车资源紧缺、海关查验趋严多重变量,很多卖家容易只关注海上…

2026/8/7 10:59:11 阅读更多 →

最新新闻

Android离线中文TTS引擎技术解密:从TensorFlow Lite到移动端语音合成的深度探索

Android离线中文TTS引擎技术解密:从TensorFlow Lite到移动端语音合成的深度探索

Android离线中文TTS引擎技术解密:从TensorFlow Lite到移动端语音合成的深度探索 【免费下载链接】ChineseTtsTflite Android Chinese TTS Engine Base On Tensorflow TTS , use for TfLite Models Test。安卓离线中文TTS引擎,在TensorflowTTS基础上开发&…

2026/8/7 13:16:13 阅读更多 →
终极指南:使用silk-v3-decoder轻松转换微信QQ语音格式

终极指南:使用silk-v3-decoder轻松转换微信QQ语音格式

终极指南:使用silk-v3-decoder轻松转换微信QQ语音格式 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. 项…

2026/8/7 13:16:13 阅读更多 →
解放90%游戏时间:MAA明日方舟自动化助手的终极使用指南

解放90%游戏时间:MAA明日方舟自动化助手的终极使用指南

解放90%游戏时间:MAA明日方舟自动化助手的终极使用指南 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gi…

2026/8/7 13:16:13 阅读更多 →
VSCodium实战指南:3个核心技巧打造专业级开源代码编辑器

VSCodium实战指南:3个核心技巧打造专业级开源代码编辑器

VSCodium实战指南:3个核心技巧打造专业级开源代码编辑器 【免费下载链接】vscodium binary releases of VS Code without MS branding/telemetry/licensing 项目地址: https://gitcode.com/gh_mirrors/vs/vscodium VSCodium作为Visual Studio Code的纯净开源…

2026/8/7 13:16:13 阅读更多 →
3步掌握BiliTools:AI智能总结助你3分钟提取90分钟视频精华

3步掌握BiliTools:AI智能总结助你3分钟提取90分钟视频精华

3步掌握BiliTools:AI智能总结助你3分钟提取90分钟视频精华 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 还在为B站海量学习视频感到无从下手吗?每天收藏的技术教程、知识分享视…

2026/8/7 13:16:13 阅读更多 →
Unity 2D角色创建器:模块化设计与动态换装系统实现

Unity 2D角色创建器:模块化设计与动态换装系统实现

1. 项目概述:为什么你需要一个2D角色创建器? 做2D游戏,尤其是RPG、平台跳跃或者冒险游戏,最头疼的事情之一是什么?对我来说,肯定是角色设计。一个主角,十几个NPC,再加上一堆敌人&…

2026/8/7 13:15:13 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →