git reflog - 還原大招

洧杰 已發佈 2019-11-17

假使我們用了 git reset 語法,將版本還原到前面的版本,而且用 git log 上看也看不到那些紀錄。但此時你又想把 commit 救回來該怎麼辦?

此時你可以用 git reflog 指令,它會詳細顯示你每個指令的 SHA-1 值,如下圖。

images

例如第一跟第三行,是我使用了 git reset HEAD^^指令來還原,而第四行的 4e79205 是我想回到的 commit 位置。

此時我就可以使用 git reset 4e79205 --hard 回到該版本,原本的紀錄就會都回來了。

這相當適合在你用了 reset 時,而 git log 上也找不到資料時,變可以用 git reflog 找到 SHA-1 編號,再將版本還原回來。

所以才會說,只要你有將檔案拉進 Git 進行版控,絕大部分資料都可以找得回來的原因。

影片參考

關於筆者

暱稱:洧杰

介紹:六角學院校長,熱愛分享與交流的前端工程師,目前專注於兼容桌面/移動網頁前端開發,期間已協助數百位平面設計師,網頁設計師導入標準網頁設計。