git checkout filename恢复了我的上次提交

时间:2011-08-12 09:02:58

标签: git

我的git仓库中只有一个主分支。我昨天晚上对我的档案进行了修改:

git add filename
git commit -m 'my message'

今天早上我做了一些更改,后来我想恢复(我没有将这些更改添加到索引中,它们只在我的文件系统中)。我看了here并使用了以下命令:

git checkout path/to/file/filename

现在我注意到我的las提交已经消失了。我做了一个搜索并找到了this,但它引用了git revert。

如果我执行git log,我的上次提交会显示在那里,但文件中的更改不会。如果我执行git状态,则不会显示任何更改,并且“没有添加到提交”消息。

为什么还原我上一次提交?如何重新应用提交?

提前致谢。

1 个答案:

答案 0 :(得分:2)

如果由于某种原因,您昨天的提交已经消失,那么首先要查找提交的内容是 reflog 。 例如,请参阅“how to undo a checkout in git?

git reflog
git reset --hard <sha from reflog><

你甚至可以“Query git reflog for all commits to a specific file”。