代码“劫后余生”:记一场Git灾难与抢救
经过一天的工作,我昨天配置的博客评论区离奇消失,查找记录时发现更惊悚的事:我近几天的Git提交记录全部失踪,并因一个误操作导致代码回滚到三天前的基础版本,所有后期工作成果瞬间清零。我向 GPT-5-Codex 求救,它立即启动高级Git命令进行抢救。最终,在GPT的指导下,我执行了几行恢复命令,代码起死回生,成功回到了误操作前的状态。这次劫后余生的经历,让我深切体会到Git的强大与学习它的必要性。
如果你对类似的情况感到恐惧,或者对Git的使用还不够熟悉,可以参考我的自救手册。本文主要讲述这件事情的前后经过。
故事的前后经过
今天我发现博客的评论区没了,我感到很奇怪,因为昨这是我昨天下午做的,当时也提交git了,可能是今天进行主题修改的时候,AI不小心把该部分代码删掉了。虽然有点小不爽,但想来也不是很复杂的事情,毕竟昨天配置评论区的时候也没费多大劲。
然而,当我打开windsurf试图查找之前的记录,发现GPT-5-Codex一如既往地陷入了“内耗式”地查找,来来回回几圈之后,我忍不住叫停问它:到底找没找到?它的回答是,没有…
我很震惊,因为这中情况不太可能发生:最近每一次都是完成一小波修改就git一下,已经养成了习惯。昨天的那个配置不可能丢失,我对那一部分工作印象很深刻,我坚信不是我出现幻觉,就是AI出现了幻觉。我打开了GitHub Desktop(我之前都是直接在IDE上随手提交的,功能相对简陋),试图依次查找与博客评论区相关的配置,我要跟AI对质!
然而,真正惊悚的事情就此开始:我发现GitHub Desktop上记录的最新提交记录是3天前(25日)。我惊慌之余打开了GitHub网站,发现的确如此,我这几天的记录工作记录不存在。我很困惑,难道是创建了什么新的分支?于是就在GitHub Desktop上随便点点点,突然,当我切回Windsurf,发现该IDE上的文件夹目录已经回归到了25日… 话说,25日的时候,我这一系列工作才刚开始没多久啊!我傻了。
之前曾经出现过对git的误操作导致一些记录找不到,不过那个时候的工作烂尾的较多,丢失也不心疼。这一次,我好不容易把网站搭好,在25日晚上线,颇有成就感。25日之后,我又对该网站进一步完善,增加了评论区、搜索页、GA4的网站流量监控、深色主题等配置。我对UI交互方面也进行了许多优化,自认为体验比最初的版本好了许多。而此时我能找到的版本仅仅是25日中午的版本,当时距离上线的基础款配置还有许多工作要做!
此时的我感觉非常沮丧,因为在半个小时之前,我还沉浸在各种幻想中,想着未来如何更进一步地把网站功能与内容完善,然后以此为根据地做大做强… 瞬间,一切似乎都成了泡影,退回了解放前。如果真如此,恐怕我没有那个心气再搞一次解放战争了。
慌乱之中,我强行镇定一下。我意识到,这件事情的发生大概率是自己对git的功能不够了解导致的,我常用的只有那几个命令,而且多数时候都是拿鼠标操作的。有很多高级命令,我或许见过,但根本不知道其背后的含义。当我使用GitHub Desktop的时候,对一些陌生操作背后发生的事情是无意识的。
AI应该很懂这些!我更需要做的事情是减少自己的贸然操作,看能不能搬到救兵。于是我回到了windsurf,继续与GPT-5-Codex进行交流。把我刚才的所作所为、当前处境以及对过去几天已日渐模糊的记忆碎片一五一十地和盘托出。为了让它认真的拯救我,我甚至打出了感情牌,告诉它如果这几天的工作记录丢失,我将失去活下去的勇气…
于是,GPT直接开始了各种工具调用,使用了很多我没听说过的 git命令,换着花样地审查各种git记录。我就像参加手术的患者家属一样在手术室门外焦急地等待着,而GPT在这个过程中,一句宽慰我的话都没说… 甚至除了思考,不被折叠的文字输出都很少。我一度想打断它,直接问:行不行啊?
就在我耐心快用光之前,它告诉我那些记录还在,列出了我今天commit的几条记录。此时的我仿佛看到了曙光,开始反复问它能不能修复?它告诉我,记录还在,应该如何如何操作,给出了几行命令。但此时我并不理解这些命令的意义,只想它告诉我能不能恢复…它依然没有正面回应,只是从它的语气中感觉比较稳…
于是,我在它的指导下执行了那几行陌生但寄托了我所有希望的命令,然后就是起死回生的时刻,我长舒了一口气。 此时,我的代码回到了我的”残之一手“点击GitHub Desktop的那一刻之前的状态,我博客配置中,评论区的内容依然找不到。但是我已经不再为此感到一丝一毫的不爽,全是劫后余生的庆幸。
后面,借助Windsurf+GPT-5,我把评论区补上了,又将其它已经发现的小bug进行了修复,然后开始写了这篇博客。这件事情始于经验的缺乏带来的误操作,不过还好我用的是git,这款软件真是大慈大悲的发明。过去两年我一直在使用git,但是只学会了最基础的操作,这件事情也让我意识到多学点git应该没啥坏处。