1

我忘记将 .ai 添加到我的 .gitignore 文件中,但运行 $ git add . 并将相当多.ai的文件添加到索引中。

当我跑过去 $ git status 看到它们时,我想将它们从索引中删除。

匆忙中,我跑了, $ git restore -s@ -SW 结果我的所有.ai文件都从我的工作树中消失了。我不应该使用W.

有什么办法可以找回我的.ai文件吗?

4

1 回答 1

6

首先,检查您是否仍然可以通过“本地历史记录”访问这些文件(由您的 IDE 记录,而不是 Git)

例如,这里建议的Local History VSCode extension可以提供帮助。

如果没有,请仔细检查您的操作系统备份功能,例如 MacOS Time Machine 状态,以防您可以从备份中恢复它们。

最后,由于您已将这些文件添加到索引中,请检查git fsck

git fsck --cache --no-reflogs --lost-found --unreachable HEAD

从列出的 SHA1 中,您可以执行以下操作git show

git show "<SHA-1 REFERENCE TO THE BLOB OBJECT HERE>" > lost_file.txt

正如托雷克评论中指出的那样:

请注意,您还可以在目录中找到每个“无法访问的 blob”的内容.git/lost-found/other

这通常比git show您可以更快更容易cd .git/lost-found/othergrep expected-string *找到具有预期字符串的文件。

于 2021-07-09T07:55:16.707 回答