git 命令怎么退回到当前版本未修改之前的状态?

简介: git 命令怎么退回到当前版本未修改之前的状态?

在此之前,我们先了解一下工作区和暂存区:



工作区(Working Directory)


就是你在电脑里能看到的目录,比如下面的 learngit 文件夹就是一个工作区:

c54f3c7e98974662855fa614c3f3ab9c.png




暂存区

工作区有一个隐藏目录 .git,这个不算工作区,而是Git的版本库(Repository)。


Git 的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有 Git 为我们自动创建的第一个分支 master,以及指向 master 的一个指针叫 HEAD。


f66e99d74c7f4e74bbf7b25ea4050e91.png


git add 把文件添加进去,实际上就是把文件修改添加到暂存区;



6155fa9f0666468bb076fb4a0f0004aa.png


git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支。


7afaf57747924a7ea68f10c8ec310592.png


总的来说就是需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

下面开始正题,要退回到当前版本需要分情况



1、没有 add(没有添加到暂存区)


这里只有一步就是:丢弃工作区的修改

撤销一个文件修改:

git checkout -- 文件名


撤销全部文件修改:

git checkout -- .



2、已经 add,但是没有 commit(已经添加到暂存区)

第一步:撤销暂存区的文件(撤销add)


把暂存区的修改撤销掉(unstage),重新放回工作区:

git reset HEAD <file>



撤销这次所有暂存区的文件

git reset HEAD .


第二步:丢弃工作区的修改

这个就是跟 没有 add(没有添加到暂存区) 的处理一样:

撤销一个文件修改:

git checkout -- 文件名


撤销全部文件修改:

git checkout -- .


目录
相关文章
|
14天前
|
缓存 数据可视化 网络安全
Git命令大全
Git命令大全
46 1
|
18天前
|
开发工具 git
Git教程:深入了解删除分支的命令
【4月更文挑战第3天】
37 0
Git教程:深入了解删除分支的命令
|
29天前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
29 1
记IDEA Git版本回退并push到远程操作
|
1月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux git命令使用教程
【Shell 命令集合 文件管理】Linux git命令使用教程
34 0
|
1月前
|
开发工具 git
git常用命令整理
git常用命令整理
13 0
|
1月前
|
开发工具 git
【git 实用指南】git 修复错误提交,版本回退
【git 实用指南】git 修复错误提交,版本回退
28 1
|
24天前
|
开发工具 git 开发者
Git常用命令大全:让你轻松驾驭版本控制
Git命令速查:`git init`新建仓库,`git clone`克隆,`git add`入暂存区,`git commit -m`提交,`git status`查看状态,`git log`查看历史,`git branch`创建分支,`git checkout`切换,`git merge`合并,`git pull`拉取更新,`git push`推送,`git remote -v`查看远程,`git checkout --`撤销本地修改,`git reset HEAD`取消暂存,`git reset --hard`回退版本。掌握这些,提升代码管理效率!
18 0
|
4天前
|
存储 安全 Linux
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
振南技术干货集:研发版本乱到“妈不认”? Git!(4)
|
3天前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
21 0
|
4天前
|
Shell Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(2)
振南技术干货集:研发版本乱到“妈不认”? Git!(2)