文件的恢复
访问量:386

一、简介

针对git来说,误删、错删或是改动了某个文件或是目录,恢复也是比简单的。在这里,我们主要看一些,从暂存区中恢复、从本地库中恢复。

二、从暂存区中恢复

应用场景:当我们在工作区误删、错删或是改动了某个文件或是目录,且尚未git add到暂存区,此时,我们可以利用git检出功能,即从暂存区中恢复。当然,不考虑头指针分离的情况,毕竟开发中,不会随便让HEAD指向一个提交ID,而不是某个分支。

从暂存区中恢复,多个使用空格分开,针对文件如下:

git checkout -- file1 [file2]

针对目录,比如恢复dir目录下的所有文件。

git checkout -- dir/.

如果提交到暂存区了怎么办呢?

我们可以使用 git reset命令,让当前分支对应的内容,覆盖掉暂存区的内容,这样就相当于我们没有提交。命令如下:

git reset HEAD

这样,我们又可以利用git checkout命令来从暂存区中恢复了。当然git总会给我们提供更加简单的办法,也就是下面的从本地库中恢复了。

三、从本地库中恢复

应用场景:当我们在工作区误删、错删或是改动了某个文件或是目录,不管是否提交到暂存区或是版本库,也就是说这一招是万能的,但万能的往往是有风险的。

从本地库中恢复使用的是 git reset命令命令,带上--hard这个参数,可以针对特定的改动进行恢复,也可以针对所有改动进行恢复,且恢复的时候,可以指定从commitId中取恢复。具体,就不细说了,可以参考“git撤销某次的提交