编辑:我可以通过查看 Eclipse 的 Team > Local History 部分来取回文件。尽管如此,这似乎是 git 的奇怪行为。默认情况下,破坏性行为似乎应该有警告。
看来我已经让 git 让我陷入一种虚假的安全感并失去了一些工作。但希望我误解了一些东西。
情况:
我对文件“page_classes.py”做了很多更改。我意识到我做了一个糟糕的改变,想看看旧版本的样子,所以我按照(如何在 git 中将文件恢复到以前的状态?)的指示做了
git checkout c154ac3a6b1b723226c5b49ed6acaae614bed030 search_engine/page_classes.py
我看到了我想要的,然后想回到我正在做的事情,所以我做了:
git checkout lastfm search_engine/page_classes.py
(lastfm 是我正在研究的分支。)
令人沮丧的是,page_classes.py 仅恢复到我上次提交时的状态,那是大约一个小时前(即在我进行大量更改之前)。
我既没有提交也没有进行更改(因为我已经开始假设 git 不会在没有警告的情况下破坏工作),但现在看来我无法恢复我的工作。这个答案暗示了很多:(Git is it possible to revert unstaged files after a checkout)
我错了,工作没了?如果是这样,我对 git 会在没有警告的情况下覆盖并丢弃我的文件的新版本感到惊讶吗?