Git 中的撤销工作区、暂存区和已提交的更改

在使用Git时,了解如何在不同阶段撤销更改至关重要,无论是在工作目录、暂存区,还是在将更改提交到本地仓库之后。本指南将带你了解基本的Git命令,以有效地管理和还原更改,确保你的版本控制过程顺利且无误。

在工作目录中修改文件但尚未添加到暂存区

当你在工作目录中对文件进行了更改但尚未将其添加到暂存区时,如果需要,你可以轻松丢弃这些更改。

  • 丢弃特定文件的更改 :git checkout [文件名]。使用此命令可将特定文件还原到其上次提交的状态,撤销你所做的任何修改。

  • 丢弃所有文件的更改 :git checkout.。如果你想丢弃工作目录中所有文件的更改,此命令会将它们重置为上次提交的状态。

  • 查看所做的特定更改 :git diff [文件名]。在丢弃更改之前,你可能想看看自己修改了什么。此命令将显示对文件所做的特定更改。

撤销已添加到暂存区的文件

如果你已将文件添加到暂存区(git add)但尚未提交,你仍然可以撤销此操作。

  • 撤销已添加到暂存区的文件 :git reset HEAD [文件名]。此命令将文件从暂存区移除,但更改仍保留在工作目录中。

  • 撤销暂存区中的所有文件 :git reset HEAD.。如果你想从暂存区移除所有文件,使用此命令。更改将保留在工作目录中。

撤销后,暂存区中的内容将被移除,但工作目录中的修改将被保留,允许你进行进一步的更改或修正。

撤销已提交到本地仓库的更改

有时,你可能需要撤销已提交到本地仓库但尚未推送到远程仓库的更改。

  • 撤销提交但保留暂存区和工作目录中的更改 :git reset --soft [提交ID]。此命令撤销提交,但更改仍保留在暂存区和工作目录中,允许你修改提交或进行进一步的修改。

  • 撤销提交并取消暂存更改,但保留工作目录中的更改 :git reset --mixed [提交ID]。此选项撤销提交并取消暂存更改,但你的修改仍存在于工作目录中。

  • 撤销提交并丢弃所有更改 :git reset --hard [提交ID]。谨慎使用此命令。它将撤销提交、取消暂存更改并丢弃工作目录中的所有修改。

理解这些Git命令使你能够有效地管理代码更改,帮助你自信地应对开发的各个阶段。无论你是丢弃不需要的修改、取消暂存文件还是回滚提交,这些工具对于维护对代码库的控制都是必不可少的。

相关推荐
miss12 分钟前
AI 改完不敢上线?OpenSpec 规约驱动开发实战
前端·代码规范·前端工程化
花间相见21 分钟前
【计算基础|Redis02】【上手】五大数据类型命令逐条实操
数据库·redis·后端
江屿风26 分钟前
【Git-组件】【Git入门:从文档灾难到版本掌控】流食般投喂
运维·笔记·git·组件·版本控制
GISer_Jing27 分钟前
AI Agent秋招面试万字通关指南|架构、ReAct、上下文工程、RAG、评测、生产运维全解
后端·ai·langchain
程序员沉梦听雨31 分钟前
【Git】fork工作流与上游同步
git
AiMan1 小时前
腾讯ima还是不可以导出左侧所有对话,只能单条导出,方法不对吗
前端
去伪存真1 小时前
并发量一高就装死?Agent 全链路“防猝死”手册
前端·agent
Moment1 小时前
AI 编程时代,聊聊我的 Mac mini 双屏桌面
前端·后端
AiMan1 小时前
先确认能不能一次把Microsofat Copilot所有内容打包一个文件导出
前端
总要学点什么1 小时前
第97篇:三维数据加载-城市建筑白模自定义着色器——让一条光带沿高度扫上去,快慢却由帧率说了算
前端·gis·webgl·cesium·着色器·空间分析·白模