git reset —hard後暫存區代碼跑哪兒去了?

前言

昨天博主在臨近下班之時,準備提交代碼到遠程Git,當我Pull遠程代碼的時候提示我有衝突,主要是resource目錄下的文件被刪除的更新,奈何IDEA又不給我個合併的界面,只告訴我這幾個文件需要合併~

於是我腦袋一熱就回滾到有需要合併的那個commit版本,然後就fuck,我暫存區的代碼全部“game over!”不見了。

解決方案

發現代碼不見了頓時就像第一次見了喜歡的姑娘,心裏那是一波又一波的小鹿亂撞,不過這是悲傷的。

於是乎就在網上急切的尋找辦法,終於在我一頓操作猛如虎的搜索下,最終將代碼恢復了。

在倉庫的目錄下打開終端,輸入:

find .git/objects -type f | xargs ls -lt | sed 60q
複製代碼

其中末尾的60q代表最近60次的add操作,然後會出來很多類似於這樣的記錄:

-r--r--r--  1 licoy  staff      249 Jun 17 17:59 .git/objects/c0/dd72f08b16a4f9c1d87b836b7ecee75a332252
-r--r--r--  1 licoy  staff       45 Jun 17 17:59 .git/objects/58/c50797f9fe9dceda109019a2b8d9cf18a48df4
-r--r--r--  1 licoy  staff       46 Jun 17 17:59 .git/objects/9c/9c6c686a21fc394d8dfc550f41824205b1dffa
-r--r--r--  1 licoy  staff      750 Jun 17 17:59 .git/objects/d7/73c7e375a316fe3e00800ffd5c5be49b00fba3
-r--r--r--  1 licoy  staff     1217 Jun 17 17:59 .git/objects/6b/a44cf7a71f83f06d969af0a2464451edc133bb
-r--r--r--  1 licoy  staff    29067 Jun 17 17:57 .git/objects/1a/56f322c6cbe07642ca248cc8de3a63d5acd0d7
-r--r--r--  1 licoy  staff      200 Jun 17 17:55 .git/objects/30/3d28198f9375111092438ddb7d872aca84f863
-r--r--r--  1 licoy  staff       79 Jun 17 17:55 .git/objects/ab/0c251513237d54b9c439e73a2f26486432ed3d
-r--r--r--  1 licoy  staff      234 Jun 17 17:55 .git/objects/e4/57508e691703f4ff58a69f3410cd28f3780d63
-r--r--r--  1 licoy  staff       45 Jun 17 17:55 .git/objects/67/948e2e1cb35a82799585b64859d8473b01dbe7
-r--r--r--  1 licoy  staff       47 Jun 17 17:55 .git/objects/f5/4b5612be0810f4658c15a9a2297ac34198c7e0
-r--r--r--  1 licoy  staff      250 Jun 17 17:39 .git/objects/1a/908f631cfe95ab0979877f929280992bacc009
...
複製代碼

然後我們選擇差不多最近的時間記錄,然後找到他的文件路徑在終端輸入

git cat-file -p {commit_id} > c.txt
複製代碼

其中{commit_id}.git/objects/ab/0c251513237d54b9c439e73a2f26486432ed3d部分中的ab/0c251513237d54b9c439e73a2f26486432ed3d,要去掉中間的斜槓,然後就是一次commit_id

執行上述命令之後會將commit_id主要內容輸出到c.txt,然後我們需要人工辨別記錄內容是不是我們暫存區的內容,如果是,那我們只需要在回滾到這個commit_id版本即可。

尾記

這次的操作之後讓我對每次的回滾更加小心翼翼了,說白了還是對Git不是那麼透徹,git reset --hard要慎用,用不好就像用了rm -rf xxx一樣,後悔莫及喲~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章