网易首页 > 网易号 > 正文 申请入驻

手滑删掉三天的代码,Git居然能救回来?关键在这条命令

0
分享至

晚上6点40分,你在错误的仓库窗口里敲下了git reset --hard HEAD~3。手指离开回车键的瞬间,大脑才完成处理——三天的代码,从工作区消失,用时不到一秒。

这种"先动手、后意识到"的窒息感,每个用Git的人都懂。但你可能不知道的是:Git并没有真的删掉那些提交。它们只是变成了"无引用"的悬空对象,躺在对象数据库里,等着垃圾回收来清理——而大多数仓库的垃圾回收频率,低到"最终"可能意味着几周。


reflog:Git的后悔药

救命的工具叫git reflog。它是一份本地日志,记录着HEAD指针最近的所有移动轨迹。关键点在于:reset操作本身也会被记进reflog,而不是抹掉之前的记录。

所以当你执行完reset,reflog里会同时存在两条记录——一条是"reset到HEAD~3",另一条是reset之前HEAD指向的那个提交哈希。找到那个哈希,执行git reset --hard 那个哈希,工作区就恢复到reset之前的状态,三个提交全部回来,用时比读完这句话还短。

reflog救不了的场景

但有个前提:这些提交必须真的存在过。如果你reset的是从未提交过的改动,reflog也无能为力——它只追踪HEAD和分支的指向,不记录从未进过版本库的文件内容。这种丢失是彻底的,唯一的防御手段是频繁提交,包括那些打算之后squash掉的临时"wip"提交,因为未提交的改动没有任何恢复路径。

reflog过期了怎么办

如果提交确实存在,但reflog条目已经过期——Git默认保留不可达的reflog条目90天,可达的更久——还有最后一招:git fsck --unreachable。这个命令能直接扫描对象数据库,找出悬空的提交对象。

执行git fsck --unreachable --no-reflog | grep commit,再用git show 哈希检查内容,确认是你要找的那个,然后reset回去。虽然麻烦,但总比重写代码强。

真正的教训:先演练,再动手

reflog救回了这次失误,但也教会我一件事:不能指望在压力下记得它存在。现在我的习惯是——任何真正有破坏性且不熟悉的操作,比如跨长历史的交互式rebase、filter-branch,或者任何带--hard--force的命令,先在一次性克隆的仓库里跑一遍,确认它做的事和我想的一样,再对真实仓库执行。

具体做法很简单:用容器起一个一次性环境,克隆仓库,执行危险操作,检查结果,然后销毁。成本不到一分钟,但能避免在6点40分的疲惫状态下,用生产仓库做实验。

Git的恢复机制确实强大,但最好的恢复,是根本不需要恢复。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
巴蒂斯塔为演《战神》疯狂锻炼增肌 已初具奎爷身材

巴蒂斯塔为演《战神》疯狂锻炼增肌 已初具奎爷身材

游民星空
2026-09-03 19:15:29
郑钦文VS凯斯,谁能晋级第四轮,奖金有多少?一数据不利美国球员

郑钦文VS凯斯,谁能晋级第四轮,奖金有多少?一数据不利美国球员

体育大学僧
2026-09-04 09:59:55
大S闺房曝光!太过诡异像灵堂引人不适,难怪大师预言她活不过50岁

大S闺房曝光!太过诡异像灵堂引人不适,难怪大师预言她活不过50岁

瞎说娱乐
2026-08-27 11:09:48
iPhone 18 Pro 即将发布!售价提前曝光,大幅度涨价

iPhone 18 Pro 即将发布!售价提前曝光,大幅度涨价

XCiOS俱乐部
2026-09-03 19:52:15
凯奇向漫威宣战:别想绕过我拍《恶灵骑士》续集

凯奇向漫威宣战:别想绕过我拍《恶灵骑士》续集

3DM游戏
2026-09-03 21:47:20
前新竹县长“动手扇郑丽文巴掌”?民众党一人还原真相,不一般

前新竹县长“动手扇郑丽文巴掌”?民众党一人还原真相,不一般

DS北风
2026-09-04 11:38:04
第20届亚运会中国体育代表团成立,运动员共815人

第20届亚运会中国体育代表团成立,运动员共815人

澎湃新闻
2026-09-04 09:56:03
“你用AI取代我?我就用AI取代你!”被CEO用AI裁掉后,他们反手造了个“AI CEO”:已狂揽3.5k+Star

“你用AI取代我?我就用AI取代你!”被CEO用AI裁掉后,他们反手造了个“AI CEO”:已狂揽3.5k+Star

CSDN
2026-09-03 16:05:38
韩国光州双年展恢复“台湾馆”名称,我国交底后,韩国说法变了

韩国光州双年展恢复“台湾馆”名称,我国交底后,韩国说法变了

DS北风
2026-09-04 08:14:02
英伟达免费送算力!闲置RTX 20/30/40/50显卡自动打工:打游戏时自动让路

英伟达免费送算力!闲置RTX 20/30/40/50显卡自动打工:打游戏时自动让路

快科技
2026-09-04 12:08:06
杨瀚森赴美开启第二季!新赛季预测数据出炉:每36分钟13.9分7.6板

杨瀚森赴美开启第二季!新赛季预测数据出炉:每36分钟13.9分7.6板

罗说NBA
2026-09-04 17:42:22
70以上老人看病单独算!国家医保局新规:今后看病更公平、更省钱

70以上老人看病单独算!国家医保局新规:今后看病更公平、更省钱

你在偷看谁
2026-09-03 21:44:37
穆帅语出惊人!批评西媒马后炮!谈穆一期皇马力主引进莫德里奇:从列维手里挖人,难如登天!

穆帅语出惊人!批评西媒马后炮!谈穆一期皇马力主引进莫德里奇:从列维手里挖人,难如登天!

福酱的小时光
2026-09-04 14:06:24
印度赖在上合捣乱十年,如今终于踢到了铁板!上合会议,印度一边参与,一边暗中较劲

印度赖在上合捣乱十年,如今终于踢到了铁板!上合会议,印度一边参与,一边暗中较劲

回京历史梦
2026-09-03 09:08:55
高盛预测2050年GDP:美国37万亿美元,印度22万亿,中国令人意外

高盛预测2050年GDP:美国37万亿美元,印度22万亿,中国令人意外

一些小事
2026-09-03 21:33:33
千万不要给孩子这种暗示:他会深信不疑的,并用一生时间去验证

千万不要给孩子这种暗示:他会深信不疑的,并用一生时间去验证

户外阿毽
2026-09-03 13:17:36
美网横扫狂揽七连胜?高芙28次离谱失误撕碎冠军遮羞布

美网横扫狂揽七连胜?高芙28次离谱失误撕碎冠军遮羞布

刘哥谈体育
2026-09-04 03:22:00
来感受一下泰国的绝望

来感受一下泰国的绝望

智先生
2026-09-03 22:58:31
肺结节去世的人越来越多,建议:2不喝、3不吃、1坚持,别马虎了

肺结节去世的人越来越多,建议:2不喝、3不吃、1坚持,别马虎了

健康科普365
2026-09-04 11:20:15
男子发现大蛇绷直身体越过鸿沟,核心力量惊人!戏称是仙家在修炼

男子发现大蛇绷直身体越过鸿沟,核心力量惊人!戏称是仙家在修炼

狸猫之一的动物圈
2026-09-01 09:56:50
2026-09-04 21:19:00
闪存猎手
闪存猎手
全网蹲好价的野生捕手,算力与羊毛都不可辜负。
290文章数 73关注度
往期回顾 全部

科技要闻

OpenAI深夜王炸!GPT-6 Astra来了

头条要闻

来华交流的外国学生:这和我来之前想象的中国不一样

头条要闻

来华交流的外国学生:这和我来之前想象的中国不一样

体育要闻

小卡来去10首轮,快船7年彩礼一场空

娱乐要闻

古天乐公司欠债1.49亿

财经要闻

姚洋:刺激消费要守住两个“大西瓜”

汽车要闻

小米与中创新航、欣旺达动力达成战略合作

态度原创

艺术
健康
游戏
手机
亲子

艺术要闻

昔日“民营设计巨头”发文,对“停工停产”进一步说明

脑梗取栓成功≠活下来,还有这三关

新游《SPINE》枪顶脸梗图爆火!大量女角色被顶

手机要闻

OPPO A7 Pro关键参数出炉:8000mAh电池七年耐用、6.57英寸OLED屏

亲子要闻

工程车小故事:毛毛的饼干去哪了

无障碍浏览 进入关怀版