文档章节

Git reset --hard 后的恢复

pior
 pior
发布于 2015/04/29 10:45
字数 486
阅读 229
收藏 0

惊魂一幕啊 

刚才执行了么这一系列的操作:

1,把最新写的代理commit到本地,没有push

2.reset --hard 到一个以前的版本.

回头一看....我去``刚提交的版本呢???

本来以为reset --hard只会把head标记带指定版本上, 分支不会变的, 结果分支也下来了`

最新版本就停在已提交到远程的版本上了....

这几天的提交都没了??!!

这可咋整...........

git log也看不到.....

git到底是什么鬼....

放狗搜了一下说--HARD 会删交提交...........

于是做了一下测试``

新提交一个版本``再reset --hard到以前的版本```是会删除之前的提交```

但是如果你在新提交的版本上再加一个分支```reset --hard后提交还是在的``因为已经有一个分支在那里了```

好吧```已经删除了``再放狗看看怎么找回吧```发现了reflog指令:

reflog 就是用来解决这个问题的。简单的说,它会记录所有HEAD的历史,也就是说当你做 reset,checkout等操作的时候,这些操作会被记录在reflog中。

$ git reflog
b7057a9 HEAD@{0}: reset: moving to b7057a9
98abc5a HEAD@{1}: commit: more stuff added to foo
b7057a9 HEAD@{2}: commit (initial): initial commit

所以,我们要找回我们第二commit,只需要做如下操作:
$ git reset --hard 98abc5a

再来看一下 git 记录:
$ git log
* 98abc5a (HEAD, master) more stuff added to foo
* b7057a9 initial commit

所以,如果你因为reset等操作丢失一个提交的时候,你总是可以把它找回来。除非你的操作已经被git当做垃圾处理掉了,一般是30天以后。

总结:

在做一些危险动作以前,比如reset,还是能多打下一分支的好,保险。反正随时可以删。

git没有想的这么危险,就算--HARD这么硬的操作也可以找回的。


© 著作权归作者所有

共有 人打赏支持
pior
粉丝 26
博文 151
码字总数 22496
作品 0
济南
高级程序员
私信 提问
Git Bash 命令

git 基础 git 分为三个区:工作区、暂存区、仓库 进入文件夹,并用git 命令初始化目录使它成为git管理仓库。 cd :进入文件目录。 ls:显示目录下所有文件。 mkdir:创建文件目录。 git init...

fengzhi714
2016/12/02
20
0
批处理中cmd /c 作用问题

批处理中 cmd /c git init echo hello>welcome.txt 如果不加cmd /c ,则在git init好了之后后面的语句都不会被执行 ===================== 这是我这几天看GIT权威指南时,将书里例子弄成一个...

ddatsh
2011/10/05
1K
2
如何恢复gitreset--hard*删除的文件?

git reset --hard 慎用!!! git reset --hard 慎用!!! git reset --hard 慎用!!! 今天,不小心使用了下面的Git命令,结果导致了文件被删除了,花了很大力气才恢复出来。 起因:准备提交代码,...

江木
2017/12/16
0
0
用GIT时,WINDOWS里坑爹的CMD,BASH就OK

其中一个BUG git reset --hard HEAD^ 恢复到上一提交时 git reset --hard HEAD^ git init Initialized empty Git repository in D:/scm/git/.git/ echo 1 >1 git add . git commit -m "init......

ddatsh
2011/09/28
4.4K
2
git revert 和reset的区别

这里讲一下git revert和git reset的区别: git revert 是撤销某次操作,此次操作之前的commit都会被保留 git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区 具体一个例子,假...

mingkaidox
2013/07/16
0
6

没有更多内容

加载失败,请刷新页面

加载更多

day177-2018-12-14-英语流利阅读-待学习

艾滋病的治愈方法是否触手可及? Daniel 2018-12-14 1.今日导读 几十年来,艾滋病一直是世界上最难对付的“超级绝症”之一,从人类历史上第一次诊断出艾滋病病例的 20 世纪 80 年代早期到 20...

飞鱼说编程
13分钟前
2
0
java 合成两张图片或图片与二维码

java中偶尔会出现需要将一张小图片嵌入大图中或带二维码的海报图片,那么本文就是奔着这个目的来的,直接上腊肉! zxing是生成1D和2D条形或二维码的工具类库,java图形库Graphics2D进行图片的...

貔貅叔
18分钟前
0
0
80后阿里P10,“关老板”如何带着MaxCompute一路升级?

我是个幸运的人。虽然幸运不能被复制,但是眼光和努力可以。 关涛/关老板,80后的阿里P10,阿里巴巴通用计算平台负责人,阿里巴巴计算平台研究员。12年职场人生,微软和阿里的选择。 关涛的花...

阿里云官方博客
34分钟前
1
0
开源软件和开源模式面临的生存危机

开源模式可能正面临一场危机。越来越多的开源软件和平台被大型云计算服务商融入自家的云服务体系,并以此获利颇丰,但并不支付费用,也没有对开源社区做出相应的回馈。而实际上,大部分开源软...

Linux就该这么学
34分钟前
1
0
统一服务消息返回错误:{"errcode":40165,"errmsg":"invalid weapp pagepath hint: [bsAWua0201ge30]"}

{"errcode":40165,"errmsg":"invalid weapp pagepath hint: [bsAWua0201ge30]"} 原因:pagepath参数为所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar), 以前配置的是:m...

tianma3798
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部