Git Checkout -f撤消所有本地更改设置回初始提交

时间:2012-02-09 04:52:58

标签: ruby-on-rails git

我搞砸了我的rails app,所以我使用了命令:

$ git checkout -f

回到我之前的提交并摆脱我的搞砸了。经过研究,我看到这个命令撤消了所有局部变化!现在我的应用程序显示了Firefox中项目的初始提交,我似乎无法将其恢复到最新提交并显示我已完成的所有工作,因此我可以在浏览器中对其进行测试。我在这篇文章How do I undo a checkout in git?

中尝试了三种策略
$ git reset --keep

$ git checkout master

$ git reset --hard HEAD

但我仍然看到应用程序就像我第一次启动项目时那样。当我输入...

git status

终端显示我在分支主机上。我在运行git reflog时仍然看到所有提交。如何恢复我的应用程序,以便我实际看到所有本地更改并可以在浏览器中继续测试应用程序?

1 个答案:

答案 0 :(得分:1)

了解reflog是什么以及如何查看它是件好事。从reflog中选择要保留的最新提交,并且:

git reset --hard abc123

其中abc123是您想要的提交的SHA1。这会将master(您当前的分支)更新为提交abc123,以及该隐含的所有历史记录。