美文网首页
git数据丢失后怎么找回?

git数据丢失后怎么找回?

作者: imkobedroid | 来源:发表于2020-03-20 19:08 被阅读0次

    前言

    今天在使用git进行第一次提交的时候出现了问题,无意中在还没commit的时候调用了方法

    git reset --hard FETCH_HEAD
    

    瞬间文件全部丢失

    找回

    按照git的标准逻辑,如果我们commit后可以使用命令

    git reflog
    

    来找到我们的提交记录,例如:

    图一

    我们可以使用:

    git reset --hard 97c4b00c
    
    

    重新找回我们的版本!但是不幸的是我们并没有进行commit所以是没有记录的!我当时是添加到暂存区后使用git reset后被覆盖到!所以必须使用其他的方法

    使用 git add 添加到了暂存区然后被 git reset 覆盖

    我们使用命令

    find ~/.git/objects -type f | xargs ls -lt | sed 10q
    

    这里的 10q 指的就是你最近添加的 10 条 add 的记录,根据你丢失文件的多少进行选择。然后出现的信息如下:

    图二

    这里就是你add后的文件记录,单条记录就是一个文件

    我们可以使用命令:

    git cat-file -p f6fc3b8ce768b4c58ac44c7a6f45489cba95497d
    

    会将 add 中的文件重新写到新文件中,进行恢复。
    此外,还有一种方法进行恢复。执行:

    git fsck --lost-found
    

    然后去到 .git/lost-found 目录下面可以找到自己已经丢失的文件。文件不会是原来的名字,需要自己打开去查看和对比。

    查看这些文件显示出来的是经过了哈希算法的乱码显示的!
    这写文件我们可以按照导出来使用命令的方式重新构建成一个文件,然后放到我们相应的编译器的位置中去,这样就算数据找回了

    最后

    谨慎使用  git reset --hard 
    

    相关文章

      网友评论

          本文标题:git数据丢失后怎么找回?

          本文链接:https://www.haomeiwen.com/subject/pelsyhtx.html