Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to recover after i execute :git reset --hard HEAD

Tags:

git

ios

I made a terrible mistake and execute "git reset --hard HEAD", all day's the local modification lost, how can i recover it?

Thanks millions

like image 874
LiangWang Avatar asked Jan 10 '13 05:01

LiangWang


2 Answers

If you didn't already commit your local changes (or at least stage them via git add, they're gone. git reset --hard is a destructive operation for uncommitted changes.

If you did happen to stage them, but didn't commit them, try git fsck --lost-found and then search through the contents of .git/lost-found - it will contain all of the objects that aren't referenced by a known commit, and may include versions of files that were staged.

like image 175
Amber Avatar answered Sep 20 '22 18:09

Amber


First run:

git reflog

It will show history of your HEAD pointer. Then select sha-code of a necessary state from first column. I think it will be near HEAD@{1} if you made just git reset --hard once. And then

git merge SHA_CODE

Bingo!

More examples you can find here: http://www.programblings.com/2008/06/07/the-illustrated-guide-to-recovering-lost-commits-with-git/

like image 42
Andrey Skuratovsky Avatar answered Sep 18 '22 18:09

Andrey Skuratovsky