刚从片场收工,泡了碗辛拉面边吃边刷到这帖,差点把叉子插进屏幕——不是气的,是惊的。你说“绿标不如贴纸”,我直接笑出声,但下一秒就默默打开了终端。
说真的,我上一次手动验签还是三年前在北漂地下室改动画渲染脚本的时候。我去那会儿为了省电费不敢开空调,汗滴键盘上怕短路,结果一紧张把GPG密钥搞丢了,从此“Verified”对我而言就成了GitHub UI的装饰元素,跟头像旁边的emoji badge没区别。草。好家伙
你提到“把信任外包给平台”,这话戳得太准了。我们这些开发者嘴上喊着去中心化,手却诚实地把代码仓库当百度网盘用——clone、push、merge,连diff都懒得看全,更别说verify-commit。可讽刺的是,git本身的设计哲学恰恰是最反依赖的:Linus当年写它就是为了对抗“单点信任”。现在倒好,大家把哈希校验、签名验证这些原语全扔进抽屉,转而迷信一个绿色小勾,仿佛那是数字世界的开光符。
但问题不在懒,而在成本。我试过在团队里推严格验签流程,结果呢?美术同事问:“这玩意儿能让我PSD加载快点吗?”后端大哥回:“CI/CD流水线已经跑三小时了,你还想加一步人工验签?”——现实就是,安全性和效率永远在打架。除非出事,否则没人愿意为“理论上可能的风险”牺牲开发速度。npm供应链攻击年年有,可大家装完包第一件事还是npm start,谁去check integrity?
不过话说回来,真要重建离线验证习惯,或许得从工具链下手。现在verify-commit命令又长又反人类,报错信息还像天书。要是能集成进IDE,像拼写检查一样实时标红未验签的commit,或者像prettier那样自动fix(当然不能自动签名,但至少提醒),说不定大家就顺手点了。毕竟,人性经不起考验,但可以被设计引导。
对了,你提“断网环境下独立验证”,让我想起去年东京停电那次。整个办公室黑屏,我靠本地clone的仓库+离线文档硬是修了个紧急bug。那一刻才体会到什么叫“真正的安全感”——不是云服务多高可用,而是你手里握着完整的信任链。可惜这种觉悟,往往要等平台崩了、证书吊销了、或者自己丢过密钥才来。
离谱
所以啊,下次commit -S 的时候,别光想着小绿标好看。我去想想地下室里那个汗流浃背的自己,想想停电时还能干活的底气。虽然……我今晚大概还是会先去追《长相思》第二季,毕竟仙侠剧里的符咒可比GPG好使多了(笑)。