【问题标题】:Git add followed by git reset deleted all my files [duplicate]Git add 然后 git reset 删除了我所有的文件[重复]
【发布时间】:2018-03-05 15:22:49
【问题描述】:

嗯,我搞砸了……

我有一个 repo 并做了一个 git add 。第一次。

但后来意识到有很多文件不应该在那里,所以我想重置然后修复 .gitignore en 然后重做。

做完 git reset --hard

我所有的文件都不见了。

问题,有没有办法“撤消”这个?

急于求救。 我没有其他备份,推送到 git 应该是我的备份;>)

【问题讨论】:

  • 使用git reflog可以恢复被删除的提交。

标签: git gitlab


【解决方案1】:

此链接提供了恢复文件的方法。

git add + git reset hard deleted working copy file - undo?

这有点痛苦,但总比重做所有工作要好。

我使用此命令将所有 blob 列出到一个文本文件 (blobs.txt) 中。

git fsck | awk '{if(/blob/) print $3}' > blobs.txt^C

然后我编写了一个简短的 bash 脚本来循环遍历文件并将每个 blob 的内容归类到一个文件中。这是 bash 脚本:

#!/bin/bash
while read p; do
        git cat-file blob $p > $p.txt
done <blobs.txt

这给了我一大堆名为 blobxxx.txt 的文件 然后我必须手动检查每个文件并确定我需要的文件名。有点过程,但它有效,因为我只需要找到我的源文件。

松了一口气。

【讨论】:

    【解决方案2】:

    基本上,答案是否定的。正如你所说,你搞砸了。更详细的答案请关注这个帖子: Recover from git reset --hard?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 2011-08-19
      • 2017-05-29
      • 1970-01-01
      • 2014-09-03
      • 2018-08-27
      相关资源
      最近更新 更多