我可以检索 git 中已创建、暂存、从未提交但随后被删除的文件吗?

Can I retrieve a file in git that had been created, staged, never committed, but then removed?

我创建了一个文件,然后使用 git add <file> 在我的 git 存储库中暂存它。

我还想在同一个提交中删除一些文件,git rm -f 'files.*'

我在删除行中使用的通配符有点过于通用,它删除了我之前暂存的文件。

记住它从未提交,只是暂存,有什么方法可以找回我无意中删除的文件吗?

如果您已将文件暂存到 git,您可能会取回它;

  1. 尝试git fsck --lost-found

输出将类似于;

$ git fsck --lost-found
Checking object directories: 100% (256/256), done.
dangling blob 20d25014d965f1fe519d53204222369d09503511
dangling blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
  1. dangling blob 之一应该是您的文件。尝试 git show <sha> 查看文件。

注意:在上述步骤之前做NOT运行git gc。它清理不需要的文件并优化本地存储库。