git reflog - 還原大招
假使我們用了 git reset
語法,將版本還原到前面的版本,而且用 git log
上看也看不到那些紀錄。但此時你又想把 commit 救回來該怎麼辦?
此時你可以用 git reflog
指令,它會詳細顯示你每個指令的 SHA-1 值,如下圖。
例如第一跟第三行,是我使用了 git reset HEAD^^
指令來還原,而第四行的 4e79205
是我想回到的 commit 位置。
此時我就可以使用 git reset 4e79205 --hard
回到該版本,原本的紀錄就會都回來了。
這相當適合在你用了 reset 時,而 git log
上也找不到資料時,變可以用 git reflog
找到 SHA-1 編號,再將版本還原回來。
所以才會說,只要你有將檔案拉進 Git 進行版控,絕大部分資料都可以找得回來的原因。