误执行硬重置后本地分支退回旧提交,刚完成的一批改动看起来全丢了。日志里能对上时间点,这种反而好排。

硬重置只移动分支指针,原提交对象仍留在引用日志中,未被垃圾回收前都能找回。这一点先确认清楚,后面就不用反复试。

git reflog -20
git branch rescue 1a2b3c4
git log --oneline rescue -5

这次卡住的地方就在「git reset 恢复提交」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。偶发问题先统计频率,一小时几次和一天一次,查法完全不同。

改完顺手把文档补一句,省得下次自己重新推一遍。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

处理上按这个顺序:先查看引用日志定位目标提交;新建分支指过去验证内容;确认后再合并回主分支。

结果对不对很好判断,丢失的提交内容完整恢复,文件与提交信息与重置前一致。

作者 9823189