1. 程式人生 > >解決SVN誤操作--使用Git倉庫中恢復已刪除的分支、檔案或丟失的操作

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


timtiandeiMac:WelfareManager timtian$ git branch recover_branch[tzfhead] 99fbfd5 
fatal: 'recover_branch[tzfhead]' is not a valid branch name.
timtiandeiMac:WelfareManager timtian$ git reflog
warning: refname 'HEAD' is ambiguous.

bc9ef04 [email protected]{0}: checkout: moving from HEAD to master
bc9ef04 
[email protected]
{1}: checkout: moving from master to HEAD bc9ef04 [email protected]{2}: pull origin master: Fast-forward c68c172 [email protected]{3}: checkout: moving from HEAD to master bc9ef04 [email protected]{4}: checkout: moving from master to HEAD c68c172 [email protected]{5
}: checkout: moving from 183b72cad197d43a950de25782a453a98b04e2af to master 183b72c [email protected]{6}: pull origin master: Merge made by the 'recursive' strategy. 99fbfd5 [email protected]{7}: commit (merge): 22222 6af9894 [email protected]{8}: commit: 111 17c48b3 [email protected]{9
}: commit: 4 f472172 [email protected]{10}: commit: 分享渠道,編輯框架 9e9f0b0 [email protected]{11}: commit: E方案方案列表,商品選擇、商品反饋 9533669 [email protected]{12}: revert: Revert "二維碼文字" e161dc0 [email protected]{13}: checkout: moving from master to e161dc01746cd0a855465373b57115fbf7368a4d c68c172 [email protected]{14}: pull origin master: Merge made by the 'recursive' strategy. 8690099 [email protected]{15}: checkout: moving from ef76dc3c813ae8e091a14b0ffe06e161eb3a3c9e to master ef76dc3 [email protected]{16}: checkout: moving from master to ef76dc3c813ae8e091a14b0ffe06e161eb3a3c9e 8690099 [email protected]{17}: commit: pod SHA c43c452 [email protected]{18}: commit: pod > 恢復到指定id 檔案 通過git branch recover_branch[新分支] commit_id 來建立一個新的分支 timtiandeiMac:WelfareManager timtian$ git branch recover_branch[tzf11] 99fbfd5 fatal: 'recover_branch[tzf11]' is not a valid branch name. timtiandeiMac:WelfareManager timtian$ git branch tzf11 99fbfd5 fatal: A branch named 'tzf11' already exists. timtiandeiMac:WelfareManager timtian$ git branch tzf11 99fbfd5 timtiandeiMac:WelfareManager timtian$

在使用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] – 就可以恢復。

相關推薦

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

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

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資訊沒有被

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

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

通過服務發現來訪問Config Server並獲取Git倉庫的配置資訊,但是Config Client註冊不到服務註冊中心

錯誤資訊: Caused by: org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://LAPTOP-G1O0G3I5:16000/didis

在IDEA建立一個工程後要放到git倉庫

1) 首先是使用IDEA 建立一個你需要的工程(如何建立和建立什麼樣的工程不是這裡的內容,略)。 2) 工程建立好後對工程右鍵是沒有Git 選項的。如圖 這時,我們可以在Terminal對話方塊裡輸入命令:git init來初始化一個本地的git 倉庫。如圖

Eclipse與GitHub的整合(一)——本地Git倉庫的程式碼push至GitHub

團隊合作開發一個專案的時候,使用Git版本控制,將程式碼託管到GitHub上對多人合作是非常方便的。下面介紹一下Eclipse與GitHub的整合——本地Git倉庫程式碼push到GitHub上。 前提條件: 1. 本地已安裝Git 2. 有GitHub賬號 3. 開發

git從遠端倉庫拉取指定分支

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

Git分之處理恢復辦法

今天整理程式碼分之時,誤刪了同事老早之前提交的現在不需要上線,但是遲早需要要上的一個 分支,最後又給恢復了過來,這裡記錄一下: 過程so easy,找到專案的.git資料夾下的logs資

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

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

統計本地Git倉庫不同貢獻者的程式碼行數的一些方法

簡單的檢視和統計 1.顯示所有貢獻者及其commit數 git shortlog –numbered –summary 2.只看某作者提交的commit: git log –author=”eisneim” –oneline –shortstat

新增項目到GIT倉庫

項目 xxxx 所有 運行 origin 本地 全部 目的 gin 在本地新建項目的目錄中打開Git Bash命令行工具 運行以下命令,設置全局信息(包括用戶名,郵箱地址) git config --global user.name "你的姓名" g

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

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

Android 操作安裝包的“assets”目錄下的檔案工具類

這是我在專案中常用到的一些工具,為了怕以後找不到故記錄於此。 /** * Created by LY on 2015/6/12. * 操作安裝包中的“assets”目錄下的檔案 */ public class AssetsUtils { /** * re

關於在linux作業系統不能刪除建立建立的使用者的操作

今天在做yarn的版本的許可權控制的時候,我再Linux當中建立了使用者和使用者組。但是那當我去刪除的時候就報使用者正在登入,刪除不了(報錯資訊如下)  userdel: user bigdata is currently logged in  (我這裡建立的bigdata使用者) 然

oracle恢復delete刪除的資料

手一抖資料就沒了,/(ㄒoㄒ)/~~ 查詢Stable_name 2018-05-28 10:10:00 時刻的資料,刪除之前的時刻 SELECT * FROM Stable_name  AS OF timestamp to_timestamp('2018-05-28 10:

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

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

shell指令碼執行時提示“沒有那個檔案目錄”的解決辦法

出現bad interpreter:No such file or directory的原因,是檔案格式的問題。這個檔案是在Windows下編寫的。換行的方式與Unix不一樣,但是在vim下面如果不Set一下又完全看不出來。 問題分析: 1、將windows 下編寫好的SHELL檔案,傳到linux下執行

ext4分割槽恢復刪除檔案

       原創文章,轉載請註明出處,謝謝!               作者:清林,部落格名:飛空靜渡 今天在測試我剛完成的在linux對NTFS分割槽進行備份和恢復的程式碼,執行程式備份一個200M的NTFS分割槽,然後在執行另一個程式恢復資料到這個200M的分割

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

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