git程式碼回退--hard的坑

柚柚酉發表於2021-08-28

git reset -soft :取消了commit  

git reset -mixed(預設) :取消了commit ,取消了add

git reset -hard :取消了commit ,取消了add,取消原始檔修改

千萬不要輕易用--hard,會把你工作區的程式碼全部清除,如果git add 還能找回來,如果沒有git add 基本找不回來。 使用了git add 找回方法

1、使用git fsck --lost-found命令查詢未提交而被刪除的記錄
2、使用git show+數字(查詢的刪除記錄編號),確認需要恢復的內容
3、使用git merge+數字(查詢的刪除記錄編號),合併被刪除的記錄**

如果git commit 會比較好找回, git reset --hard HEAD~1,退回到上一個版本,用git log則是看不出來被刪除的commitid,用git reflog則可以看到被刪除的commitid,我們就可以買後悔藥,恢復到被刪除的那個版本。

git reflog

使用這一命令列可以看到你的版本號,然後 git reset --hard 版本號

  • HEAD指向的版本就是當前版本,因此,Git允許我們在版本的歷史之間穿梭,使用命令git reset --hard commit_id
  • 穿梭前,用git log可以檢視提交歷史,以便確定要回退到哪個版本。
  • 要重返未來,用git reflog檢視命令歷史,以便確定要回到未來的哪個版本。

相關文章