git reset --hard 操作后的數(shù)據(jù)恢復

在進行正文之前先簡單介紹下git reset 命令

git reset

git reset 命令用于改變當前的倉庫狀態(tài)账忘,簡單的場景用例:假設(shè)一次修改了兩個文件,然而需要對這兩個文件分別進行兩次提交熙宇,在進行緩存操作時(git add)鳖擒,不小心將兩個文件都進行了緩存,此時我們需要對其中一個文件取消緩存烫止,此時就需要git reset 操作來實現(xiàn)蒋荚,如下圖

image.png

然后,對b.txt進行commit操作烈拒,然后再對a.txt進行add & commit操作

對于git reset命令添加了--hard 參數(shù)后會怎樣呢圆裕,在git官網(wǎng)的reference上 有如下一段話

也就是說,添加--hard參數(shù)后荆几,會回到上次commit的狀態(tài)吓妆,也就是說從上次commit之后的的修改都將被重置,換句話說這些數(shù)據(jù)都丟失了吨铸,所以要謹慎操作哦行拢。

image.png

前置知識就到這里了,開始今天的重點诞吱。

當我們進行了git reset --hard操作進行了版本回退舟奠,現(xiàn)在我們又需要之前的修改信息,也就是說我們需要版本回退之前的文件信息房维,此時我分了三種情況

  1. 之前的修改進行了 commit 提交沼瘫,也就是說我們回退前的修改(曾經(jīng))存在于版本里;
  2. 之前的修改未進行commit提交,但是進行了 git add 操作咙俩;
  3. 之前的修改未進行 commit 提交耿戚,也未進行git add操作。

如果時第一種情況阿趁,很簡單我們拿到之前修改的commit的哈希值(或者說id)膜蛔,然后執(zhí)行 git reset --hard [hash]就可以回退到之前修改的狀態(tài)。
怎么拿hash脖阵, 這個好說皂股,可以執(zhí)行命令git reflog命令,它會顯示出你之前的所有操作
像這個

image.png

62f039e 就是我的reflog提交的哈希值命黔,對其進行reset即可

如果是第三種情況呜呐,不好意思暫時還沒有找回的辦法就斤,如果你有歡迎拿出來大家交流

今天的重點就是第二種情況,畢竟曾經(jīng)我也以為此情況無解卵史,直到后來這邊文章誕生前战转。

今天的主角命令 git fsck,這里呢不具體講解此命令以躯,只是簡單描述利用此命令進行文件恢復槐秧。

image.png
image

如圖示,我新建了文件c.txt并添加了內(nèi)容 'git fsck'忧设,添加到緩存之后進行了reset操作刁标, 此時因為沒有進行git commit操作所以沒有hash值,可供恢復址晕,這個時候需要進行操作 git fsck --lost-found操作膀懈,返回如下結(jié)果:

image

關(guān)于此命令,git官網(wǎng)的解釋
[圖片上傳失敗...(image-deb41a-1562049785342)]
根據(jù)提示谨垃,找到目錄'.git/lost-found'启搂,可以看到,

image

我們在‘commit’和‘other’目錄下分別看到命令窗口打印出的文件刘陶,在‘other‘目錄下找出之前遺失的文件


image

然后新建'c.txt'文件胳赌,并將文件內(nèi)容復制過去,結(jié)束匙隔。

是不是很麻煩疑苫,特別是一次提交的文件多了,一個一個新建(修改)復制過去好煩哦纷责。

是的很煩捍掺,所以保持良好的習慣。永遠不要讓這種操作降臨到自己身上才是正道再膳。(這只是為不可控的意外情況準備的)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挺勿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子喂柒,更是在濱河造成了極大的恐慌满钟,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胳喷,死亡現(xiàn)場離奇詭異,居然都是意外死亡夭织,警方通過查閱死者的電腦和手機吭露,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尊惰,“玉大人讲竿,你說我怎么就攤上這事泥兰。” “怎么了题禀?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵鞋诗,是天一觀的道長。 經(jīng)常有香客問我迈嘹,道長削彬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任秀仲,我火速辦了婚禮融痛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘神僵。我一直安慰自己雁刷,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布保礼。 她就那樣靜靜地躺著沛励,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炮障。 梳的紋絲不亂的頭發(fā)上目派,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音铝阐,去河邊找鬼址貌。 笑死,一個胖子當著我的面吹牛徘键,可吹牛的內(nèi)容都是我干的练对。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼吹害,長吁一口氣:“原來是場噩夢啊……” “哼螟凭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起它呀,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤螺男,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纵穿,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體下隧,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年谓媒,在試婚紗的時候發(fā)現(xiàn)自己被綠了淆院。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡句惯,死狀恐怖土辩,靈堂內(nèi)的尸體忽然破棺而出支救,到底是詐尸還是另有隱情,我是刑警寧澤拷淘,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布各墨,位于F島的核電站,受9級特大地震影響启涯,放射性物質(zhì)發(fā)生泄漏贬堵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一逝嚎、第九天 我趴在偏房一處隱蔽的房頂上張望扁瓢。 院中可真熱鬧,春花似錦补君、人聲如沸引几。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伟桅。三九已至,卻和暖如春叽掘,著一層夾襖步出監(jiān)牢的瞬間楣铁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工更扁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盖腕,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓浓镜,卻偏偏與公主長得像溃列,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子膛薛,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容