从Git仓库中恢复已删除的分支或丢失的commit

来源:互联网 发布:梦想世界跨服传输数据 编辑:程序博客网 时间:2024/05/16 06:03

晚上临下班,差点一句话干掉3天的工作成果。。赶紧百度了下边找回数据的方法~

在使用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,可以通过提交的时间和日期来辨别
2. 通过git branch recover_branch commit_id 来建立一个新的分支
这样,我们就把丢失的东西给恢复到了recover_branch分支上了

转自:http://blog.sina.com.cn/s/blog_53c264d00101bh0l.html

阅读全文
0 0