git 如何恢復只是提交到本地的文件(或者commit)


今天早上傻逼了,把四天的代碼commit到了本地,然后fetch一下,然后就全沒了,不過git還是挺強大的

參考:http://blog.163.com/jiams_wang/blog/static/3033914920138179326885/

git如何恢復本地刪除的文件(還沒執行 git commit)

直接從本地把文件checkout出來就可以了,用不着從遠程服務器上pull下來,因為,所有的歷史版本你的本地都有的。


具體做法 git checkout file 同時恢復多個被刪除的文件:
git ls-files -d | xargs -i git checkout {}

 

從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命令來找到我們需要恢復的信息對應的commitid,可以通過提交的時間和日期來辨別  <git reflog show>

 

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

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM