可以通過reflog來進行恢復,前提是丟失的分支或commit信息沒有被git gc清除
一般情況下,gc對那些無用的object會保留很長時間后才清除的
可以使用git reflog show或git log -g命令來看到所有的操作日志
恢復的過程很簡單:
-
通過git log -g命令來找到需要恢復的信息對應的commitid,可以通過提交的時間和日期來辨別,找到執行reset --hard之前的那個commit對應的commitid
-
通過git branch recover_branch commitid 來建立一個新的分支
這樣,就把到commitid為止的代碼、各種提交記錄等信息都恢復到了recover_branch分支上
