Git用了三年还是只会commit push?有个功能 senior 开发者几乎天天看,新手却连名字都念不顺。不是rebase,不是cherry-pick,是那个叫reflog的隐藏日志。
reflog本质上是个本地备份系统。Git每动一次HEAD——切换分支、reset、rebase、甚至失败的merge——都会悄悄记一笔。默认保留90天,像一份只属于你的"后悔药清单"。
最狠的场景是误删分支。普通开发者开始 Google"怎么恢复Git分支",而 senior 直接git reflog找到分支最后的commit hash,一行命令捞回来。没推过远程的分支、被force push覆盖的代码,都能从这里挖出来。
作者原话:「It's the quiet, invisible time machine built into Git that almost no one uses properly.」
但reflog有个致命前提:它只存本地。换台机器、清过.git目录、或者用了超过90天,记录就消失。有人把它当万能备份,结果硬盘挂了才发现什么都没同步。
Stack Overflow去年统计显示,"recover deleted git branch"相关问题年均新增2.3万条,而点赞最高的答案永远是reflog。知道这功能的人不少,真正养成查看习惯的不到一成——毕竟灾难发生前,谁会觉得需要一台时光机。
热门跟贴