第10章

齐朗的指尖在键盘上悬停了十二秒,Git命令行的光标不停闪烁,像在催促他做出决定。显示器蓝光映在他三天没刮的胡茬上,将下巴染成一种病态的青色。

"真的要这么做?"他自言自语,手指无意识地摩挲着咖啡杯沿——杯底还沉着半片没完全溶解的安眠药。电脑屏幕上是他们结婚三年来所有的聊天记录导出文件,正在被批量替换关键词:"离婚"改成"度假","冷冻卵子"替换为"年终奖","分居"变成了"项目出差"。

卧室传来林小鹿的咳嗽声。齐朗迅速切回IDE界面,假装在调试代码。但屏幕上那行"git reset --hard HEAD~3"的指令已经暴露了他的意图——他想把婚姻回滚到三年前刚结婚时的版本,就像修复崩溃的软件系统那样。

"还没睡?"林小鹿的声音突然在背后响起。齐朗手忙脚乱地合上笔记本,金属外壳夹住了他的指尖。她穿着那件已经起球的旧睡裙,怀里抱着准备送去干洗的羽绒服——口袋里还露出半截生殖中心的预约单。

"修、修复个紧急bug。"齐朗的视线黏在羽绒服口袋上,喉结滚动得像卡了鱼刺。林小鹿的睫毛在台灯下投出细密的阴影,让他想起蜜月时巴厘岛的棕榈叶帘。

冰箱门开合的声响打破了沉默。林小鹿取出促排卵针剂,玻璃药瓶在掌心泛着冷光。齐朗突然站起来,椅子腿在地板上刮出刺耳的声响。"我来吧。"他说,声音比预想的嘶哑。

酒精棉球擦过皮肤时,林小鹿的肌肉明显绷紧了。齐朗注意到她后腰新添的淤青——那是上周在宜家为了抢特价婴儿床撞的。"疼吗?"他问,针头在灯光下闪着银光。

"比取卵针好多了。"林小鹿的回答带着熟悉的嘲讽,但尾音已经软化。药液缓缓推入皮下时,齐朗突然想起三年前她食物中毒,他也是这样笨拙地给她打止吐针。

针剂包装盒被扔进垃圾桶,落在撕碎的聊天记录打印件上。那些被替换过关键词的对话此刻正从纸缝里露出马脚:"项目出差很顺利"下面隐约可见原来的"分居协议","年终奖到账了"盖不住"冷冻卵子"的痕迹。

凌晨三点,齐朗的代码终于跑通。他蹑手蹑脚地回到卧室,发现林小鹿蜷缩在大床最边缘,怀里抱着已经掉色的结婚玩偶——那是他们去东京迪士尼买的,现在米老鼠的耳朵已经开线。

月光透过纱帘,在地板上画出一道银色分界线。齐朗盯着那道光线看了很久,突然想起git reset的本质并不是删除代码,而是将指针移回某个commit节点。所有的历史记录依然存在,只是暂时不可见。

第二天清晨,林小鹿在餐桌上发现了一张手绘地图。潦草的箭头标注着他们第一次约会的路线:从五道口地铁站到那家倒闭已久的意大利餐厅,最后停在现在已经改成链家的电影院原址。

"这是......?"她的指尖沾上了咖啡渍。

"系统回滚。"齐朗从微波炉里端出焦黑的煎蛋,"按三年前今天的日程,我们应该去这里吃晚餐。"微波炉"叮"的一声,像是给这个荒谬计划按下确认键。

林小鹿的眉毛挑了起来,这个表情三年前会让齐朗心跳加速,现在只让他胃部绞痛。但当她展开地图背面,看到用铅笔写的"记得避开那道奶油蘑菇汤,你上次过敏了"时,嘴角的弧度微妙地改变了。

晚上七点,他们站在已经变成711的餐厅原址前。齐朗穿着那件婚礼后就没再穿过的浅蓝色衬衫,袖口的纽扣少了一颗。林小鹿的香水味被夜风吹散,露出底下久违的栀子花基调——那是他们热恋期她最爱的味道。

"要不......"齐朗的声音卡在喉咙里。林小鹿突然指向便利店冰柜:"看,还有同款提拉米苏。"玻璃柜里躺着的甜品确实印着熟悉的logo,只是尺寸缩水了一半。他们隔着冰柜门相视而笑,那一刻仿佛真的回到了三年前。

回家的地铁上,林小鹿的膝盖不小心碰到齐朗的。两人同时瑟缩了一下,却没有立即移开。列车驶过隧道时,车窗倒映出他们模糊的轮廓,像是老照片上褪色的影像。

"其实......"齐朗突然开口,"git reset之后还需要git push -f强制覆盖远程仓库。"林小鹿茫然的眼神让他不得不切换语言:"我是说,光我单方面回滚不够。"

林小鹿的睫毛颤动了几下。当她从包里掏出那板过期避孕药时,铝箔纸在车厢灯光下闪闪发亮。"我今早发现的,"她的声音很轻,"原来我们一直留着同样的东西。"

药片上模糊的日期在光影交错中忽隐忽现。列车进站时的惯性让两人的肩膀撞在一起,这次谁都没有躲开。齐朗的指尖碰到药板边缘,发现铝箔上的凸起字母组成了一句他们婚礼上的誓言:For better or for worse.

出站时,林小鹿的手机突然弹出提醒:"三年前的今天,你们在巴厘岛看海豚"。照片里两人的笑脸被雨水打湿,就像此刻齐朗发红的眼眶。他低头在Git记录里搜索"海豚",发现那天自己写道:"她以为海豚会带来好运,其实是因为我说了离婚两个字。"

雨越下越大。他们挤在便利店屋檐下,分享着那块缩水的提拉米苏。奶油沾在林小鹿嘴角时,齐朗条件反射地伸手,却在半路被她握住。掌心相贴的温度比任何代码都更真实,比任何系统回滚都更有效。

"不用回滚到三年前。"林小鹿的声音混在雨声里,"现在的版本就挺好。"她指间夹着那片过期的避孕药,铝箔纸在雨中渐渐软化,就像那些被水泡糊的聊天记录,就像他们被时间打磨得不再锋利的棱角。

齐朗的Git命令行还开着,但他已经手动删除了那条reset指令。雨水顺着发梢滴落在键盘上,恰好冲掉了最后那个代表回滚的波浪线。取而代之的是一行新命令:git merge --no-ff,意思是即使无法快进,也要保留所有历史记录生成新的提交。