一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

恢復(fù)被刪除的Git stash記錄

馬哥Linux運(yùn)維 ? 來(lái)源:馬哥Linux運(yùn)維 ? 2023-12-10 15:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、問(wèn)題

有時(shí)候在 git stash 非常有用,但是我們能由于一些錯(cuò)誤的操作,導(dǎo)致將 git stash 中內(nèi)容被刪除掉,誤刪 stash.

二、知識(shí)點(diǎn)

git fsck命令用于檢查 Git 倉(cāng)庫(kù)中的對(duì)象的完整性和一致性。它可以發(fā)現(xiàn)和報(bào)告一些潛在的問(wèn)題,比如損壞的對(duì)象、丟失的對(duì)象引用等。

  1. 檢查對(duì)象完整性:確保所有的對(duì)象(提交、文件樹(shù)、文件等)在物理上存在且沒(méi)有損壞。如果有對(duì)象損壞,git fsck將報(bào)告并顯示問(wèn)題。

  2. 尋找不可達(dá)對(duì)象:Git 使用引用來(lái)跟蹤對(duì)象,如果某個(gè)對(duì)象沒(méi)有任何引用指向它(即不可達(dá)對(duì)象),git fsck會(huì)發(fā)現(xiàn)并報(bào)告這些不可達(dá)的對(duì)象。

  3. 查找丟失的對(duì)象引用:它會(huì)檢查是否存在引用(比如分支、標(biāo)簽等),但沒(méi)有對(duì)應(yīng)的對(duì)象存在。這可能是因?yàn)閯h除了對(duì)象或引用指向了一個(gè)不存在的對(duì)象。

  4. 輸出報(bào)告:將列出發(fā)現(xiàn)的問(wèn)題,并提供相應(yīng)的修復(fù)建議或提示。

三、復(fù)制一個(gè)副本

為了安全和不熟練操作 git stash 的同學(xué),將當(dāng)前項(xiàng)目準(zhǔn)備一個(gè)副本,在副本中進(jìn)行操作,防止第一個(gè)現(xiàn)場(chǎng)丟失。

四、查看 unreachable 列表

切換到副本中,所有的操作放在副本進(jìn)行:

git fsck --unreachable

	

查看所有unreachable的記錄, 如同下面的例子:


	
git fsck --unreachable
Checking object directories: 100% (256/256), done.
unreachable blob 08a0724cff104d83f3c261b68487e5b5dfb0bc92
unreachable blob 09e0e7369d8c60923a53c8097674dde7f71a0cc0
unreachable blob 0b00205b03a9d5a7c311907b968d41da09ee0662
unreachable blob 0ba035459d1ce597a1cbba64a5f1073c467af198
unreachable blob 0f8093bb5835971fad89f8274387d15d38eba9c7
unreachable blob 11205462d9730314c6ac8f0320ef0c6247af4b7a

五、將 unreachable 內(nèi)容提取到編輯器中

最好準(zhǔn)備一個(gè)編輯器,將所有的內(nèi)容復(fù)制出來(lái),因?yàn)檫@個(gè)列表可能很長(zhǎng),在終端展示有限,也不好搜索,將其復(fù)制出來(lái)放在編輯器中(vscode)在內(nèi)過(guò)多的時(shí)候有查找等優(yōu)勢(shì)。

六、 認(rèn)識(shí) unreachable 分類(lèi)

類(lèi)型 描述
Commit 不再有分支或標(biāo)簽指向的提交
Tree 不再有提交指向的文件樹(shù)
Blob 不再有文件樹(shù)指向的文件對(duì)象
Tag 不再有分支或提交指向的標(biāo)簽
unreachable 一般表示 Git 對(duì)象的一部分,但由于沒(méi)有引用指向它們,因此被視為不可達(dá)

這里我們重點(diǎn)關(guān)注commit對(duì)象。

七、git show +展示信息

git show <sha>

	

根據(jù)返回的信息,判斷是不是我們需要恢復(fù)的內(nèi)容,根據(jù)個(gè)人經(jīng)驗(yàn), commit 是我們需要恢復(fù)的內(nèi)容可能比較大

八、恢復(fù)

有目標(biāo)的 sha key, 然后切換到 stash 的分支, 執(zhí)行:

git stash apply + <sha>

	

可能會(huì)出現(xiàn)如下的錯(cuò)誤:


	
fatal: '' is not a stash-like commit

解決辦法:使用 merge 命令

	
# 如果有合并沖突,解決沖突
git merge +<sha>


	

在副本中已經(jīng)完成,相同的操作在目標(biāo)項(xiàng)目中重新實(shí)現(xiàn)一次即可。

九、小結(jié)

本文主旨在恢復(fù)刪除的 git stash 存儲(chǔ)的內(nèi)容,從副本出發(fā),結(jié)合git fsck命令獲取unreachable列表,然后,根據(jù)自己的項(xiàng)目 使用git show 查看unreachable對(duì)象中的內(nèi)容,找到目標(biāo)對(duì)象,然后使用git stash apply 或者git merge 進(jìn)行合并。如果這些操作符合我們的目標(biāo),在正式項(xiàng)目中重新演繹一次即可。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 終端
    +關(guān)注

    關(guān)注

    1

    文章

    1204

    瀏覽量

    30906
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    822

    瀏覽量

    32045
  • Git
    Git
    +關(guān)注

    關(guān)注

    0

    文章

    205

    瀏覽量

    16221

原文標(biāo)題:恢復(fù)被刪除的Git stash 記錄

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    stm32cubemax在線升級(jí)后,原來(lái)建立的工程被刪除了,如何恢復(fù)?

    cubemax在線升級(jí)后,原來(lái)建立的工程被刪除了,如何恢復(fù)
    發(fā)表于 07-10 08:22

    git shell 常用命令

    -f a.a 強(qiáng)行移除修改后文件(從暫存區(qū)和工作區(qū)中刪除)git diff --cached 或 $ git diff --staged 查看尚未提交的更新git
    發(fā)表于 04-16 15:57

    手機(jī)通訊記錄被刪除怎么辦?

    恢復(fù)的數(shù)據(jù)類(lèi)別,比如:通話(huà)記錄恢復(fù)等。點(diǎn)擊進(jìn)入通話(huà)記錄恢復(fù),手機(jī)數(shù)據(jù)恢復(fù)精靈會(huì)自動(dòng)掃描。 做完上
    發(fā)表于 03-06 14:22

    QQ聊天記錄怎么恢復(fù)

    恢復(fù)精靈就會(huì)自動(dòng)掃描手機(jī)里被刪除的QQ聊天記錄, 最后,我們勾選出系統(tǒng)掃描出的QQ聊天記錄,選擇需要恢復(fù)部分,勾選出來(lái)。等待系統(tǒng)幫我們
    發(fā)表于 03-09 10:49

    恢復(fù)Unix系統(tǒng)被刪除地文件

    恢復(fù)Unix系統(tǒng)被刪除地文件 與DOS/Windows不同,Unix文件被刪除后很難恢復(fù),這是由Unix獨(dú)特的文件系統(tǒng)結(jié)構(gòu)決定的。所以,要想恢復(fù)
    發(fā)表于 01-11 11:53 ?1005次閱讀

    蘋(píng)果手機(jī)備忘錄刪除了怎么恢復(fù)?誤刪備忘錄找回教程

    在左上角處的下拉框中找到“僅顯示已刪除”并點(diǎn)擊,然后,從好友列表內(nèi)中勾選出被刪除微信聊天記錄的微信好友,點(diǎn)擊圖標(biāo)【恢復(fù)到電腦】就可以在電腦上查看了。
    發(fā)表于 06-15 16:23 ?5713次閱讀

    蘋(píng)果手機(jī)短信刪除了怎么恢復(fù)?就用開(kāi)心手機(jī)恢復(fù)大師

    在這個(gè)界面中,我們將會(huì)看到好友列表內(nèi)顯示兩種顏色的字體。黑色代表的是未被刪除的短信,黃色代表的是已經(jīng)刪除的短信。點(diǎn)擊黃色好友頭像,勾選出需要恢復(fù)的短信。然后,點(diǎn)擊“恢復(fù)到電腦”,就可以
    發(fā)表于 07-08 22:59 ?1661次閱讀
    蘋(píng)果手機(jī)短信<b class='flag-5'>刪除</b>了怎么<b class='flag-5'>恢復(fù)</b>?就用開(kāi)心手機(jī)<b class='flag-5'>恢復(fù)</b>大師

    陌陌恢復(fù)大師:蘋(píng)果陌陌聊天記錄恢復(fù)教程

    在界面左側(cè)的好友框內(nèi)我們會(huì)看到有部分好友顯示橘黃色,這些顯示橘黃的好友就是被刪除了陌陌聊天記錄。然后勾選出你想恢復(fù)陌陌聊天記錄,點(diǎn)擊“恢復(fù)
    發(fā)表于 07-30 22:24 ?2681次閱讀
    陌陌<b class='flag-5'>恢復(fù)</b>大師:蘋(píng)果陌陌聊天<b class='flag-5'>記錄</b><b class='flag-5'>恢復(fù)</b>教程

    蘋(píng)果恢復(fù)大師告訴你:微信刪除后怎么恢復(fù)聊天記錄

    進(jìn)入微信聊天記錄界面。在界面中,我們可以看到左側(cè)好友列表框內(nèi)有顯示兩種不同顏色的好友,橘黃色的好友表示被刪除了微信聊天記錄。然后,我們需要點(diǎn)擊橘黃色的好友頭像,勾選出需要恢復(fù)的微信聊天
    發(fā)表于 08-19 23:44 ?2346次閱讀
    蘋(píng)果<b class='flag-5'>恢復(fù)</b>大師告訴你:微信<b class='flag-5'>刪除</b>后怎么<b class='flag-5'>恢復(fù)</b>聊天<b class='flag-5'>記錄</b>

    微信聊天記錄刪除了怎么辦?恢復(fù)微信聊天記錄

    微信聊天記錄刪除了還能看到嗎,應(yīng)該如何恢復(fù)?我們疆場(chǎng)會(huì)不小心將微信上的記錄給清空了,一般只要刪除了聊天窗口,我們就看不到
    發(fā)表于 08-03 16:51 ?3652次閱讀

    你會(huì)在Linux系統(tǒng)中恢復(fù)被刪除文件?

    當(dāng)用戶(hù)意外地刪除了一個(gè)仍然需要的文件時(shí),大多數(shù)情況下,是沒(méi)有簡(jiǎn)便的方法可以重新找回或重建這個(gè)文件。不過(guò),幸運(yùn)的是文件是可以通過(guò)一些方法恢復(fù)的。當(dāng)用戶(hù)刪除了一個(gè)文件,該文件并沒(méi)有消失,只是被隱藏了一段時(shí)間。
    發(fā)表于 05-13 09:26 ?1543次閱讀

    如何徹底刪除微信聊天記錄

    怎么徹底刪除微信聊天記錄不被恢復(fù)?方法不在多而在精!
    的頭像 發(fā)表于 08-26 16:44 ?6871次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)-數(shù)據(jù)庫(kù)文件被刪除/分區(qū)被格式化的SQL SERVER數(shù)據(jù)恢復(fù)方案

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)-數(shù)據(jù)庫(kù)文件被刪除/分區(qū)被格式化的SQL SERVER數(shù)據(jù)恢復(fù)方案
    的頭像 發(fā)表于 09-21 14:34 ?1116次閱讀

    如何在 Git恢復(fù)隱藏的修改記錄

    git stashgit stash pop 這樣的命令是用來(lái)擱置(藏匿)和恢復(fù)我們工作目錄中的變化的。在本教程中,我們將學(xué)習(xí)如何
    的頭像 發(fā)表于 10-09 14:09 ?1413次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—存儲(chǔ)中卷被刪除后重建如何恢復(fù)被刪除卷的數(shù)據(jù)?

    服務(wù)器存儲(chǔ)數(shù)據(jù)恢復(fù)環(huán)境: 某品牌FlexStorage P5730服務(wù)器存儲(chǔ),存儲(chǔ)中有一組由24塊硬盤(pán)組建的RAID5陣列,包括1塊熱備硬盤(pán)。 服務(wù)器存儲(chǔ)故障: 存儲(chǔ)中的2個(gè)卷被刪除,刪除之后重建了一個(gè)新卷。需要
    的頭像 發(fā)表于 06-05 11:03 ?1048次閱讀