今天早上傻逼了,把四天的代碼commit到了本地,而後fetch一下,而後就全沒了,不過git仍是挺強大的git
參考:http://blog.163.com/jiams_wang/blog/static/3033914920138179326885/服務器
直接從本地把文件checkout出來就能夠了,用不着從遠程服務器上pull下來,由於,全部的歷史版本你的本地都有的。工具
具體作法 git checkout file 同時恢復多個被刪除的文件:
git ls-files -d | xargs -i git checkout {}fetch
從Git倉庫中恢復已刪除的分支或丟失的commitspa
在使用Git的過程當中,有時可能會有一些誤操做日誌
好比:執行checkout -f 或 reset -hard 或 branch -d刪除一個分支blog
結果形成本地(遠程)的分支或某些commit丟失it
這時,咱們能夠經過reflog來進行恢復,前提是丟失的分支或commit信息沒有被git gc清除class
通常狀況下,gc對那些無用的object會保留很長時間後才清除的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分支上了