在Git中恢復(fù)已經(jīng)刪除的Stash

今天工作的時(shí)候,需要從remote repository中獲取別人提交的代碼,但是自己的working tree已經(jīng)修改的很多的東西,所以自然而然,先做一次stash再說。

不過在做stash的時(shí)候,正好在外部的編輯器中打開了一個(gè)工程中得資源文件,導(dǎo)致無(wú)法Git無(wú)法成功從working copy中刪除這個(gè)文件。最終的結(jié)果是,stash做成功了,但是working copy依然是臟的。這個(gè)時(shí)候我做了莫名其妙的動(dòng)作,直接刪除了stash。刪除完了才發(fā)現(xiàn),stash沒有了,但是working copy中只剩下那個(gè)孤零零的沒有成功stash的文件。

一頭冷汗哈,最近兩天的工作啊。趕緊想辦法把他找回來。還好還好,還是有辦法的找回來的。

首先使用fsck命令找到dangling的對(duì)象。

git fsck
執(zhí)行這個(gè)命令后,可以看到一大堆信息,就像下邊的:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (5572/5572), done.
dangling blob 6537cf0662e078710033e56b93a9b8aa6df60982
dangling commit 03d787944abf794d987a8793e6fce6bc92eaa54d
dangling commit f1e8f5c16aece59b9fe442f9f872aed9b5f2559c
dangling blob 69ec813d3669eb6a5441af1b0be17715e3230a91
dangling blob 16752b498905a04d1d702159c3c331381e1d98e9
這時(shí)候,找到你要恢復(fù)的對(duì)象,你可以用git show 來查看哪個(gè)是你刪掉的。一旦找到了就好辦了,有兩個(gè)辦法可以恢復(fù):

一個(gè)是在.git/logs/refs/stash文件中加一條記錄如下:

ID of previous stash commit in list or 0000000000000000000000000000000000000000 if none> Your Name
完成以后,你就可以在stash列表中看到你的被刪除的stash對(duì)象。

另外一個(gè)方法就是執(zhí)行g(shù)it stash apply命令直接恢復(fù)到working copy中,這個(gè)時(shí)候,最好保證你的working copy是干凈的。命令如下:

git stash apply ID(the ID of stash commit)
執(zhí)行完畢,一切又都回來了!

from: http://ju.outofmemory.cn/entry/159623

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,866評(píng)論 1 26
  • 本片內(nèi)容轉(zhuǎn)自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃兒閱讀 5,044評(píng)論 2 87
  • Add & Commit git init 初始化一個(gè) Git 倉(cāng)庫(kù)(repository),即把當(dāng)前所在目錄變成...
    冬絮閱讀 5,130評(píng)論 0 9
  • Git 基礎(chǔ) 基本原理 客戶端并不是只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整的鏡像下來。這樣一來,任何一處協(xié)同...
    __silhouette閱讀 16,199評(píng)論 5 147
  • 你是否也有一個(gè)一直忘不掉的人? 那些愛而不得的時(shí)光里,你是怎么度過的? 今天,小貓想給大家推薦一部電影——《東邪西...
    橘小貓日記閱讀 971評(píng)論 0 0

友情鏈接更多精彩內(nèi)容