如何重做 git 中丢弃的本地更改?

how to redo discarded local changes in git?

让文件 a 由 git 跟踪并在本地修改。 而且,那个文件也在藏匿处。

然后:

如果您做到了 git stash pop,请参阅 this link

如果不小心你只做了这个git checkout a你就输了。

这会丢弃文件中的所有更改。

如何撤销这个操作?

我在 reflog 中没有看到这个操作。

pop 后的存储不存在(未列出),但是 .git 目录中的某处是否提供了任何历史记录?

reflog 仅跟踪分支提示何时更新,因此我不希望在那里看到您的更改。

来自doc

Reference logs, or "reflogs", record when the tips of branches and other references were updated in the local repository.

很抱歉,在这种情况下使用 checkout 意味着这些更改将丢失。

stash 可能是更安全的选择。

编辑:

如果这种损失很严重,您可以通过查看@jthill 对原始问题的评论进行一些挖掘