首页/开发/Git 与协作速查/reflog 过期与对象清理
进阶与大仓实践69 条

reflog 过期与对象清理

reflog 记录引用变动,是误操作的恢复通道;确认不再需要恢复时(如完成历史重写),过期 reflog 并 gc 才能让旧对象真正被回收。

Git 与协作速查开发更新于 2026-10-12
过期git reflog expire --expire=now --all
清理git gc --prune=now
恢复窗口默认 reflog 保留 90 天,过期后旧提交不再受保护

常用示例

常用示例
git reflog -5
git reflog expire --expire=now --all
git gc --prune=now
git fsck --unreachable | head
执行即失去对应恢复能力:只在确认现场不需要回退时使用,团队仓库需提前公告。

易错点

  • 把 reflog 当成永久备份会误判风险:它只在保留期内有效,且不跨机器
  • 清理后旧提交仍可能存在于他人克隆或镜像,敏感内容需配合凭证轮换

数据来源与参考

  • Git 官方文档:git-reflog(expire)
  • Git 官方文档:git-gc(--prune)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌