1. 程式人生 > >從Git倉庫中恢復已刪除的分支、檔案或丟失的commit

從Git倉庫中恢復已刪除的分支、檔案或丟失的commit

在使用Git的過程中,有時可能會有一些誤操作

比如:執行checkout -f 或 reset -hard 或 branch -d刪除一個分支

結果造成本地(遠端)的分支或某些commit丟失

可以通過reflog來進行恢復,前提是丟失的分支或commit資訊沒有被git gc清除


一般情況下,gc對那些無用的object會保留很長時間後才清除的

reflog是git提供的一個內部工具,用於記錄對git倉庫進行的各種操作

可以使用git reflog show或git log -g命令來看到所有的操作日誌


恢復的過程很簡單:


1. 通過git log -g命令來找到我們需要恢復的資訊對應的commit_id,可以通過提交的時間和日期來辨別。一個好的辦法是執行:1、git log --since="2 weeks ago" -- myfile 可以2個星期期間的myfile歷史;2、git log --branches="develop" 可以檢視develop的commit


2. 通過git branch recover_branch[新分支] commit_id 來建立一個新的分支

這樣,我們就把丟失的東西給恢復到了recover_branch分支上了。


Q:如果是不小心執行了git reset,還有辦法取消嗎?

A:git reflog 檢視操作歷史,找到之前 HEAD 的 hash 值,然後 git reset --hard 到那個 hash 即可。


Q:怎樣找回歷史版本中刪除的檔案?

A:先確定需要恢復的檔案要恢復成哪一個歷史版本(commit),假設那個版本號是: commit_id,那麼

git checkout [commit_id] -- <path_to_file>就可以恢復。 

相關推薦

Git倉庫恢復刪除分支檔案丟失commit

在使用Git的過程中,有時可能會有一些誤操作 比如:執行checkout -f 或 reset -hard 或 branch -d刪除一個分支 結果造成本地(遠端)的分支或某些commit丟失 可以通過reflog來進行恢復,前提是丟失的分支或commit資訊沒有被git gc清除 一般情況下,gc對那些

Git倉庫恢復刪除分支丟失commit

在使用Git的過程中,有時可能會有一些誤操作 比如:執行checkout -f 或 reset -hard 或 branch -d刪除一個分支 結果造成本地(遠端)的分支或某些commit丟失 可以通過reflog來進行恢復,前提是丟失的分支或commit資訊沒有被

解決SVN誤操作--使用Git倉庫恢復刪除分支檔案丟失的操作

timtiandeiMac:WelfareManager timtian$ git branch recover_branch[tzfhead] 99fbfd5 fatal: 'recover_branch[tzfhead]' is not a valid

git遠端倉庫拉取指定分支

若本地分支不存在的情況: git checkout -b 本地分支名稱 origin/遠端分支名稱 使用該方式會在本地新建分x,並自動切換到該本地分支. git fetch origi

Linux恢復仍在活動程序刪除檔案

許多情況下,刪除的檔案都可以恢復,比如在該檔案有活動的程序在操作它,並且目前被單個或多個使用者使用時。在 Linux 系統中,每個當前正在執行的程序都會獲得 ID,其被稱之為程序識別符號 “PID”,並將它們存放在 /proc 目錄中。這正是我們恢復仍在執行的程序中(具有

Git 倉庫刪除檔案的歷史提交記錄

剛接觸這東西,會使用GitHub for windows 之後,感覺挺好用的。 不過最近發現,程式碼庫已經有90M大小了。想一想,除了把ttf字型檔案提交了之外,圖片素材,和編譯後的class檔案都提交了。 網上找一些方法,刪除歷史記錄。綜合一下,總算成功了。 官

Sql Server 日誌恢復刪除誤Update的資料

最近在研究SQL Server日誌,基本明白日誌的記錄方式。 如果資料庫在建立時 “恢復模式”是“完整”模式,那麼,在對資料庫做的任何操作都會記錄在LDF日誌檔案中,所以有時我們發現LDF日誌檔案要比MDF資料檔案都大。 看一下軟體介面: 軟體基本功能就是讀取LDF日誌檔

如何刪除GIT倉庫的敏感資訊

如何刪除GIT倉庫中的敏感資訊 正常Git倉庫中應該儘量不包含資料庫連線/AWS帳號/巨大二進位制檔案,否則一旦洩漏到Github,這些非常敏感資訊會影響客戶的資訊保安已經公司的信譽。公司可能其它還有相關規定,如禁止私人郵件加入GIT倉庫。如果違反這些規定,可能會面臨辭退、高額罰款、或牢獄之災等非常嚴厲的懲罰

把本地git倉庫的項目引入到碼雲上

blog 無需 idt url eight git倉庫 set 連接 .cn 一、安裝git軟件和TortoiseGit客戶端(git需配置環境變量,但安裝時已經配置好,無需考慮) 二、生成公鑰和私鑰(建立與碼雲的連接) 三、在碼雲上新建項目(建議在組

OPPO R11手機裏的照片刪除了怎麽恢復恢復刪除的照片

在我們使用手機的時候,我們經常會使用手機裏的拍照功能,如果我們誤將手機裏拍照的重要照片刪除了,那麽我們應該怎麽將我們手機裏刪除的照片恢復?手機裏的照片刪除後如何恢復?通過這篇文章,我就來告訴大家如何恢復我們手機刪除的照片。 如果我們不小心將手機裏的照片刪除了,那麽我

OPPO手機如何恢復刪除的聯系人

  OPPO手機是安卓手機中賣的比較火的手機,深受女孩子喜歡。當OPPO手機中的聯系人號碼被刪除時,我們該怎麽辦?如何恢復OPPO手機中刪除的聯系人號碼。不用擔心,我們可借助數據恢復軟件來恢復手機中丟失的數據或者誤刪的數據。 互盾數據恢復軟件是款專業的數據恢復軟件,尤其是安卓手機,所以借助互盾數據恢復軟

indexOf()返回首次出現位置,splice() 方法向/數組添加/刪除項目

span blog 位置 pre bsp col 方法 項目 sch indexOf(): http://www.w3school.com.cn/jsref/jsref_indexOf.asp splice(): http://www.w3school.com.cn/j

Exchange Server 2016管理系列課件09.刪除恢復刪除的郵箱

rem size cto ref statistic 公眾號 email tab use 恢復的郵箱已經不再是之前原用戶郵箱。因為在刪除郵箱時,原有AD用戶已經被刪除,即使新建同名用戶再將之前的郵箱恢復給新用戶,那也是不同的用戶。最佳實踐:建議使用禁用郵箱的功能。能否恢復已

Exchange Server 2016管理系列課件35.恢復刪除的郵件

服務器 Exchange 恢復郵件 使用場景客戶需要緊急恢復一個月內刪除的郵件。服務器端設置默認的“保留已刪除項目的期限”為14天。郵箱級別的設置打開EMC,選擇收件人,然後編輯所選擇的收件人。在“郵箱使用情況”界面,可以看到默認是遵從數據庫級別的設置的。我們可以調整為自定義設置,比如這裏設置為3

Linux中用extundelete恢復刪除的文件

Linuxextundelete 恢復文件 在Linux中,我們會遇到不小心刪除文件的時候,那麽我們就可以用extundelete來恢復這些誤刪的文件。在此實驗裏,我將啟用rh6-2並用xshell來進行遠程連接。第一步:添加一塊硬盤添加硬盤的方法我在前面有講過,在這裏就不截圖了。添加硬盤之後一定要重

恢復刪除的郵箱帳號後登錄owa報錯

exchange watermark att img AR water 技術 分享圖片 term 現象:1.恢復已刪除的郵箱帳號後登錄owa報錯2.提示找不到AD賬戶信息 解決辦法:重啟exchange system attendent服務 恢復已刪除的郵箱帳號後登錄owa

Confluence 6 其他備份恢復數據

https acl spl 進行 TE wiki http clas other 一般來說,Confluence 數據庫可以從 Administration Console 或者 Confluence Setup Wizard 中進行恢復。如果你在恢復壓縮的 XML 備份的

Linux系統通過extundelete恢復刪除的數據

eve 數據覆蓋 root lib ear ali 工作 rect 如果 我們都知道windows系統有個回收站,凡是被刪除的文件都可以通過回收站來恢復數據,即便是按住shift鍵永久刪除了,也有很多數據恢復軟件可供使用。那麽Linux下如果數據被刪除了,又該如何恢復呢,L

怎麽恢復刪除的聊天記錄通話記錄

之前 新的 生成 備份文件 除了 剛才 登陸 自己 文件復制 微信下載已經成為年輕人生活中不可缺少的通訊方式,在微信裏面可以尋找自己的幸福,同時還可以獲得滿足感?今天我們一起來看微信記錄怎麽恢復?他們可以恢復刪除的微信記錄,查別人的微信文字記錄, 記錄刪除後的恢復,不同於一

SharePoint 2013/2016:如何恢復刪除的Site Collection

近期在與客戶做技術討論時,客戶提出一個來自end user的問題:客戶是跨國公司,業務模型種類比較多,所以Site Collection是按照部門結構和業務模型來新建和管理的,Site Collection Admin幾乎都是每個部門特定的人員,不是SharePoint IT Admin集中管理,但在管理過程