git reset --hard 求救哈

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

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

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

求救怎么恢复。

4991 次点击
所在节点    git
54 条回复
461da73c
2022-04-23 18:56:32 +08:00
reflog 肯定没用,只在暂存区,还是重新实现一下吧。
eggt
2022-04-23 18:56:54 +08:00
用 jetbrains 的话,在需要恢复的文件内直接 Ctrl +Z 就能恢复
HankAviator
2022-04-23 19:02:38 +08:00
借楼问:如果是重要的变更,是不是要开一个新分支,频繁临时提交,最后再改提交信息,以避免这个问题?
oneisall8955
2022-04-23 20:05:17 +08:00
用 idea 系列的 ide ,只要 local history 没被清除,那还有的救
molvqingtai
2022-04-23 20:32:59 +08:00
本人亲测,只有 add 也可以找回,用这个脚本
https://github.com/ethomson/git-recover
christin
2022-04-23 21:30:02 +08:00
@tlerbao #11 你是用 local history 回复的吗? 做个备份
Rache1
2022-04-23 23:04:39 +08:00
@HankAviator

”借楼问:如果是重要的变更,是不是要开一个新分支,频繁临时提交,最后再改提交信息,以避免这个问题?“

A:良好的 Git 使用习惯就是应该每完成一个小的功能点就 commit 的一下,以后找起来也方便,既然都已经觉得是重要的了,就更要谨慎操作每一步了。其实除了这种误操作执行 git 命令的,还有更要命的就是掉盘,会有概率因文件被占用导致填零 😂
Licsber
2022-04-23 23:24:40 +08:00
https://www.yuque.com/licsber/blog/pl88o4

果然。。大家总会在差不多的时间碰到差不多的问题
phithon
2022-04-24 01:06:56 +08:00
恭喜
FrankHB
2022-04-24 03:50:19 +08:00
没事整什么 stash ,又低效又难用。同样没备份,hg mq 不知高哪去了。
不用 stash ,老实多 commit ,直球 reset 也无所谓,反正能 reflog 。
FrankHB
2022-04-24 03:59:47 +08:00
如果说的是 staging area ,这货就不配叫暂存区,特么根本就没存内容。
这个多此一举模拟 GUI 的 checkbox list 的二缺设计……算了不浪费口水了,还是多 commit 吧。。。
硬要模拟 index 也是被 hg mq 吊打,人还能不止一个……
ElmerZhang
2022-04-24 09:13:09 +08:00
@FrankHB hg mq 这么 NB ,怎么还没把 git 干掉
kestrelBright
2022-04-24 11:06:40 +08:00
local history
littlewing
2022-04-24 11:12:23 +08:00
@HankAviator 难道不应该是任何变更都是新开一个分支吗
charlie21
2022-04-24 11:28:22 +08:00
后续怎样,在主分支上将此次修改的最终结果 git merge 进来?新开分支上的 commit 历史怎么办 or 丢弃新开分支本身吗
@littlewing
Junzhou
2022-04-24 11:45:10 +08:00
@tlerbao 如果需要回滚并且保留暂存文件,或许你需要的命令是 git reset <commit id>
crayygy
2022-04-24 12:43:16 +08:00
只能说 Jetbrains 家的 IDE 是最好用的版本控制工具了(?
HankAviator
2022-04-24 12:51:39 +08:00
@littlewing 只是 op 丢未提交的内容这一部分,如果提交了就好找回了,重点是频繁临时提交
qiyuey
2022-04-24 13:38:21 +08:00
《论有一个完善的 IDE 的重要性》
hO0O0
2022-04-24 14:26:41 +08:00
真幸福,还有机会抢救。我上次脑子抽了直接把.git 给删了,删之前还把代码 stash 了一下,当时心态就崩溃了。。。。

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

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

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

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

© 2021 V2EX