Recover from git reset --hard?

后端 未结 22 2514
盖世英雄少女心
盖世英雄少女心 2020-11-22 00:52

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

相关标签:
22条回答
  • 2020-11-22 01:54

    (answer suitable for a subset of users)

    If you're on (any recent) macOS, and even if you're away from your Time Machine disk, the OS will have saved hourly backups, called local snapshots.

    Enter Time Machine and navigate to the file you lost. The OS will then ask you:

    The location to which you're restoring "file.ext" already contains an
    item with the same name. Do you want to replace it with the one you're
    restoring?
    

    You should be able to recover the file(s) you lost.

    0 讨论(0)
  • 2020-11-22 01:55

    If you're developing on Netbeans, look between the file tabs and the file edit area. There is a "Source" and "History". On "History" you'll see changes made using version control (git/other), but also changes made locally. In this case, local changes could save you.

    0 讨论(0)
  • 2020-11-22 01:56

    answer from this SO

    $ git reflog show
    
    4b6cf8e (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: reset: moving to origin/master
    295f07d HEAD@{1}: pull: Merge made by the 'recursive' strategy.
    7c49ec7 HEAD@{2}: commit: restore dependencies to the User model
    fa57f59 HEAD@{3}: commit: restore dependencies to the Profile model
    3431936 HEAD@{4}: commit (amend): restore admin
    033f5c0 HEAD@{5}: commit: restore admin
    ecd2c1d HEAD@{6}: commit: re-enable settings app
    
    # the commit the HEAD to be pointed to is 7c49ec7 (restore dependencies to the User model)
    
    $ git reset HEAD@{2}
    

    You got your day back! :)

    0 讨论(0)
  • 2020-11-22 01:58

    I just did git reset --hard and lost all my uncommitted changes. Luckily, I use an editor (IntelliJ) and I was able to recover the changes from the Local History. Eclipse should allow you to do the same.

    0 讨论(0)
提交回复
热议问题