然后想要具体恢复那个文件,就可以依次执行如下两个命正芦搭令:
1、git reset HEAD 文件路径
2、git checkout 文件路径
然后被你误删的文件就举拿会成功找哗好回了。
打开git库文件,可以看到文件夹内的所有文件都没了,只有一个git仓库还存在。
这时在文件夹上右击,在d出的菜单中选择"Git Bash Here"这一项。
进入Bash页面后,我们执行ls *** 作,可以发现,文件夹下同样不存在文件。
这时我们再执行git reflog。
reflog它会记录所有HEAD的历史,也就是说当你做 reset,checkout等 *** 作的时候,这些 *** 作会被记录在reflog中。
如果我们要找回文件,只需要做如下 *** 作(*表示上一步中出现的log号):
git reset --hard *
我们再次执行ls *** 作,可以发现文件已经还原回来了.
所以,如果因为reset等 *** 作丢失一个提交的时候,你总是可以把它找回来。
又没有提交本地的修改,然后使用 git reset —hard 改变了分支的内容。上一次是直接没有 git add ,导致修改的文件全部消失,这样即使是 git 也没陆顷有办法恢复,只能重新写一遍。这次好了一点点,使用了 git add ,但是还没有提交,查找了一番之后还是恢复了。记录这个过程,谨记慎重在开发用的机器上面使用 git reset —hard 。
比如一个例子,提交的 commit 记录如下:
这时候使用了 git reset —hard ,提交记录变成如下:
没有远程仓库的情况下,如何才能恢复刚才丢失的 test 4 那条 commit 呢。可以使用 git reflog :
可以看到早型陆每一次的 *** 作都被记录了起来。要恢复到 test 4 的那一次提交,只需要执行:
即可以恢复。
这个时候需要恢复可以执行以下步骤:
这里的 10q 指的就是你最近添加的 10 条 add 的记录,根据你丢失文件的多少进行选择。然后出现的信息如下:
objects 后面的部分就是一个 add 的ID,注意要去掉 / 符号。从上到下是最新的提交到旧的提交。执行:
会将 add 中的文件重新写到新文件中,进行恢复。
此外,还有一种方法进行恢租侍复。执行:
然后去到 .git/lost-found 目录下面可以找到自己已经丢失的文件。文件不会是原来的名字,需要自己打开去查看和对比。
只能重写了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)