git

Recover from losing uncommitted changes by "git reset --hard"


Is there any way to recover uncommitted changes to the working directory from a git reset --hard HEAD?


Solution

  • You cannot get back uncommitted changes in general.

    Previously staged changes (git add) should be recoverable from index objects, so if you did, use git fsck --lost-found to locate the objects related to it. (This writes the objects to the .git/lost-found/ directory; from there you can use git show <filename> to see the contents of each file.)

    If not, the answer here would be: look at your backup. Perhaps your editor/IDE stores temp copies under /tmp or C:\TEMP and things like that.[1]

    git reset HEAD@{1}
    

    This will restore to the previous HEAD

    [1] vim e.g. optionally stores persistent undo, eclipse IDE stores local history; such features might save your a**