錯誤的git reset操做以後的補救措施

(相關命令:git reset、git log、git reflog,要看文檔的話用--help。)git

這是一次愚蠢的行爲以後的總結……避免我以後忘記了解決方法【逃spa

get reset --hard是一個很是危險的行爲。日誌

好比該項目,git log顯示:code

$ git log commit cc53a1925fb7895ad88d155a43f3012249615919 (HEAD -> master) Author: *** Date: Mon Mar 12 16:47:00 2018 +0800 version 1 commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e Author: *** Date: Mon Mar 12 16:46:46 2018 +0800 version 0

此時執行git reset --hard HEAD^(回退爲HEAD前一次提交):blog

$ git reset --hard HEAD^ HEAD is now at 1ca078c version 0

此時再次查看git log,發現version 1提交沒有了。git log只查看當前提交的祖先。文檔

$ git log commit 1ca078c22c4b7d5c79214069cb1be8d4122dbe7e (HEAD -> master) Author: *** Date: Mon Mar 12 16:46:46 2018 +0800 version 0

此時能夠git reflog,即查看每一次HEAD的變化,並reset到須要的commit。get

$ git reflog 1ca078c (HEAD -> master) HEAD@{0}: reset: moving to HEAD^ cc53a19 HEAD@{1}: commit: version 1 1ca078c (HEAD -> master) HEAD@{2}: commit (initial): version 0 $ git reset cc53a19 --hard HEAD is now at cc53a19 version 1

或者用git log -g(即--walk-reflogs)查看每一次HEAD的變化的日誌,並進行reset。(代碼略it

相關文章
相關標籤/搜索