今天早上傻逼了,把四天的代码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分支上了