git reset --hard 求救哈

2022-04-23 16:13:48 +08:00
 tlerbao

脑子抽筋,执行了 git reset --hard xxx

现在暂存区的所有没提交的修改都没了,

求救怎么恢复。

5005 次点击
所在节点    git
54 条回复
thulof
2022-04-24 14:30:52 +08:00
还有个 lost&found 可以找,add 过的应该都可以找回来
shenqi
2022-04-24 14:31:39 +08:00
这个目录不要操作任何先。
复制一份,查看里面的.git ,你能看到类似某个 hasd 的,一个个找出来。
sola97
2022-04-24 14:33:20 +08:00
没事多 commit ,用 interactively rebase 干啥都行
yuzhouwww
2022-04-24 16:01:27 +08:00
@hO0O0 哈哈哈怎么想的
Felldeadbird
2022-04-24 16:11:45 +08:00
从楼主的教训得出:没事操作 reset 干啥。
zhuweiyou
2022-04-24 16:13:34 +08:00
如果用的是 JB IDE,可以在 local history 里找到
ooee2016
2022-04-24 16:25:16 +08:00
git reflog show [branch-name]
试试能不能找到
FrankHB
2022-04-24 16:38:25 +08:00
@ElmerZhang hg mq 一点都不 nb ,只不过 hg CLI 的一些基础设计真没 git CLI 设计得那么傻缺,拿过来开箱即用而体现出日用体验优势了。
要干掉也是 hg 整个干掉 git ,不过 GitHub dssq 呗……(这种 SO/YC 之类的一搜一大把就不具体引用了。)要我说就是绝大多数日常用户甚至都还没到用出差别的水平(除了 hg 存小文件效率和 git 断点续传更欠扁的个别问题),用哪个基本就是随大流,git 更网红所以更常见罢了。
另外现在 mq 是 hg 官方都不建议用了( www.mercurial-scm.org/wiki/MqExtension )。毕竟 mq 不是为了体现竞品傻缺发明出来的,而是为了替代早年 hg 没有 rebase 。这又是因为 hg 早年排斥修改历史的传统。然后这里 hg 还是怂了,于是有了 strip 有了 histedit 有了 rebase ,所以修改历史这个最主要的目的就用不上 mq 了。mq 仍然有用,主要适合专业对付 patch series 的 maintainer ,而 git 核心用户一开始也强调对了这个需求,并且设计得并不傻缺——直接开 branch ( hg 对应 git branch 的 bookmark 也不是一开始有的),处理 patch queue 时跟 hg mq 的实际日常用法大同小异;种种因素使 git 中一直有(不严格)对应的功能,但具体用法反而没那么大存在感(间接增长了类似 OP 这里的问题)。
这里鼓励 git 多 commit 也不可能是一个 branch 上蹲点(这里也有不少人表示新开 branch 算是常识了),所以核心用法跟 mq 差不多(只不过不强调是 patch )。
PPing520
2022-04-24 21:17:18 +08:00
我也出过类似的问题,后来写了这个😂 https://github.com/xuzhongping/rusure
hpu423
2022-04-25 10:08:23 +08:00
git reset --soft 重置 HEAD,与上一次 commit 保持一致,暂存区和工作区不变
你这种应该用--soft
git 我自荐看看我整理的 git 手册 https://cheatsheet.wang/
nothingistrue
2022-04-25 12:52:51 +08:00
reset --hard 的意图就是丢弃当前工作回到以前的某个状态,所以在执行之前一定要确认还没提交 /stash 的内容,确实是要丢弃的,如果不是那就先 stash 或提交。
lechain
2022-04-25 13:39:54 +08:00
@tlerbao “已经 add 但是还没 commit 的 文件 当 reset --hard 后 真的没有办法通过 git 本身的手段找回吗?”

git 管不了这个
sockball07
2022-04-25 20:11:28 +08:00
如果还记得改了哪些文件 本地历史还能救回一些
hlx
2022-04-25 21:33:48 +08:00
不要让代码在你的电脑上过夜, 哈哈, 没事就 commit

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848777

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX