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分支上了

posted @ 2016-01-07 14:02  2BiTT  阅读(10313)  评论(1编辑  收藏  举报