git 文件恢复与项目还原:008

1. 【文件恢复】:将文件恢复到上一次提交的状态

注意:新建且没有提交的文件无法使用文件恢复

命令:

git checkout -- 文件名

 

假如我们的一开始是这样的,这是没有报错的状态文件

 然后我添加了一段内容, 比如我添加这段内容项目报错了, 我需要恢复到没有报错的状态

方法一:代码比较,找到修改的内容将其修改回来,这种方法只适用修改比较少的情况。这种方法不做演示

方法二:文件恢复,将文件恢复到未被修改的状态

 

首先使用git status查看一下状态, 可以看到这个文件是未被追踪状态

 

然后可以使用命令:git checkout -- test_file.txt  将文件恢复到未被修改的状态

 

1.1:撤销追踪:对于那些已经使用了git add 的文件, 这时候是无法对文件进行恢复的,需要将文件撤销追踪才能对文件使用恢复功能

假如我们对文件进行一个修改, 并对他使用 git add 命令

 

这个时候使用  checkout 命令是无法起作用的,如下,文件还是无法恢复到未被修改状态

 

 这个时候就需要使用命令 git reset HEAD 文件名  对它进行追踪撤销。

 然后使用 git status 命令查看当前文件状态,可以看到该文件是未添加到缓存区一个状态, 这个时候就可以对这个文件使用 checkout 命令来恢复了

恢复命令,可以看到文件已经被恢复了

 

2. 【版本还原】

命令:

git reset -- hard DEAD^  回退到上一个版本

git reset -- hard DEAD^^  回退到上上一个版本

git reset -- hard  版本号  指定退回到指定版本(注意不能使用HEAD。且一旦回退到指定版本, 那指定版本之前的版本都会消失,所以不建议使用)

git checkout 版本号 -- 文件名  将指定文件退回指定版本(不会删除历史版本)

git checkout 版本号 -- .   将所有文件回退到指定版本(不会删除历史版,版本回退时建议使用这个命令,要注意的是文件恢复命令,版本号还是原来的版本号,版本描述也是原来的版本描述)

 

首先查看一下版本号:git log --oneline  如下可以看到,有5个版本号,当前项目一共有5次提交记录。这个是从下往上来排序的

 

回退到上一个版本:git reset --hard HEAD^   (haed是强行的意思、HEAD是指针的意思,这里回退到上一个版本,所以加^)

回退到上上个版本也是一样,这里就不再演示:git reset --hard HEAD^^

 

不建议使用(因为指定版本之前的版本会消失):退回到指定版本,假如我想回退到“描述信息”这个版本,这时就可以使用命令:git reset --hard 版本号

 

建议使用:git checkout 版本号 -- .(回退到指定版本,之前的版本不会消失,注意, 这个实际上是文件恢复,将所有文件恢复到指定版本,版本号不会更新,版本描述也不会更新):

git checkout 版本号 -- 文件名    (将指定文件回退到指定版本,这里就不演示了)

git checkout 版本号 -- .    (将所有文件回退到指定版本,这里就不演示了)

 

完毕!!!

 

posted @ 2023-05-28 19:49  博无止境  阅读(199)  评论(0编辑  收藏  举报