Skip to Content
文档工作台恢复中心

恢复中心

破坏性操作执行前,应用会先把相关状态写到本机快照。恢复中心(⌘K 搜索“恢复中心”,或从状态栏的撤销入口进入)负责列出、预览、恢复与清理这些快照。

哪些操作会留下快照

操作快照内容
丢弃文件、片段、行或批量丢弃被丢弃改动的补丁;批量丢弃保存整棵工作区
删除 Stash该 Stash 指向的提交
硬重置重置前的脏工作区
带租约强推推送前的远端尖端
中止合并、变基、拣选等操作中止时的工作区目录

快照写失败会阻止对应操作执行,而不是先破坏再补救。

保留上限

  • 时间:24 小时
  • 数量:200 份
  • 体积:512 MiB

上限在打开仓库时检查并清理超出部分。快照目录位于应用数据目录;不可写时回退到系统临时目录。清理过期条目会永久删除文件,删除前需要确认。

恢复

恢复会先检查当前内容,再决定是否写入:

  • 补丁类快照先做 git apply --check;
  • 文件类快照检查目标路径的现状;
  • 如果快照之后文件又改过,恢复会停下来,不覆盖新内容,并保留快照供你导出或手工比对。

批量应用时,所有补丁都会在第一次写入前检查完;只要有一处冲突,就什么都不写,并列出冲突路径。

硬重置的快照恢复只写文件,不会移动 HEAD。

强推之后找回

带租约强推前会记录远端尖端,并用一个备份引用固定它。恢复时的行为是:

  • 先读一次远端;
  • 只有远端仍停在强推后留下的那个提交,才把旧提交重新推回去;
  • 如果之后有人推送过,恢复停止且不做任何修改。

导出与删除

  • 导出 — 把快照保存到指定位置,作为普通文件保留;
  • 删除 — 永久删除单条快照;
  • 清理过期 — 删除当前仓库中超过 24 小时的全部快照;
  • 搜索 — 按路径、操作或类型过滤。

恢复失败时快照不会消失,仍可导出。

与「撤销提交」的区别

提交后 60 秒内的「撤销」是 git reset --soft,把 HEAD 退回上一个提交,改动留在暂存区,不产生快照。它只处理当前 HEAD,并且在没有进行中的操作时可用。其余破坏性操作走恢复快照。

批量丢弃中断

批量丢弃会先为整批写一份工作区快照,再开始逐路径写入,同时维护一份日志。如果进程在中间退出,重启后状态栏会提示上次批次未完成,并在恢复中心里列出这份快照。

最后更新于