跳至内容
GitTree
历史和恢复

通过失物招领恢复丢失的工作

Lost & Found 搜索引用日志、GitTree 的恢复引用以及(如果您询问)无法访问的对象,以查找没有分支再指向的提交。预览每个分支持有的内容,然后将其保留在新分支上。没有任何内容被签出、重置或删除。

免费已更新

适用于 GitTree 免费:所有本地 Git 功能,无需帐户。

在此页面上
  1. 开始之前
  2. 在哪里可以找到它
  3. 步骤
  4. 预期结果
  5. 每个来源的含义
  6. 恢复掉落的藏品
  7. 失物招领或转发日志
  8. 如果出现问题
  9. 问题
  10. 有关的

开始之前

  • 工作是在这台计算机上进行的:Lost & Found 只读取此存储库的本地历史记录,而不会读取远程历史记录。
  • Git 尚未对其进行修剪:无法访问的对象将通过垃圾收集删除,并且引用日志条目默认会在大约 90 天后过期。

在哪里可以找到它

  • 左侧面板的 TOOLS 部分:Lost & Found。
  • 工具栏中的 Tools、存储库选项卡的菜单或 Reflog 对话框:Lost & Found 或 Alt+Shift+D。
  • 命令面板:Lost & Found。
行动macOSWindows 和 Linux
Lost & Found⌥⇧DAlt+Shift+D
命令面板⌘⇧PCtrl+Shift+P

步骤

  1. 打开失物招领处

    它在 Start 页面上的自己的窗口中打开。 Where GitTree looks 命名三个源:Reflog、GitTree recovery references 和 Unreachable objects (deeper scan)。

    失物招领在起始页上有自己的窗口,包含引用日志、GitTree 恢复参考和更深入的扫描
    查找本地工作阅读这些来源。扫描不会检查、重置或删除任何内容。GitTree 与演示存储库的接口。
  2. 寻找本地工作

    勾选 Include a deeper scan for unreachable objects 还可以列出没有指向的提交和文件,例如删除的存储;在大型存储库上速度较慢。按 Find local work。 Stop 结束长扫描。

  3. 检查结果

    Found work 列出了结果及其来源以及查看时间。 Filter by commit, message or source 缩小范围。选择一项:Why this object appears 显示其证据,提交消息或文件内容如下所示,并且 Files 下的每个文件打开其内容。

  4. 把它挂在分支上

    在 Keep this commit 下,输入 New branch name 并按 Create recovery branch。 GitTree 说 Created branch …. Your checkout is unchanged.

  5. 在图表中显示出来

    Recovered 列出了您创建的分支。 Show in graph 关闭 Lost & Found 并选择图表中的提交。

预期结果

提交位于新的本地分支上,因此 Git 保留它。您当前的分支、签出和工作文件保持原样。像其他分支一样合并、挑选或推送分支。

每个来源的含义

失物招领处的来源读取
来源它包含什么何时使用它
引用日志每个分支和 HEAD 之前指向的位置重置、变基或修改后
GitTree 恢复参考在可能丢失工作的操作之前拍摄的快照 GitTree重置后,删除分支或丢弃 GitTree
无法到达的对象提交和文件没有指向任何内容掉落的藏品或在终端中完成的工作

仅在引用日志中的条目仍然可以从分支访问,因此它们首先是隐藏的。 Include retained reflog history 也显示了它们。

恢复掉落的藏品

存储是具有多个父级的提交。将其保留在分支上会保留其更改,但不会恢复存储的索引或未跟踪的文件布局。检查分支,或将其与您的工作进行比较,以收回更改。

失物招领或转发日志

View Reflog… 按顺序显示一个引用的历史记录(查找上一个分支提示)。 Lost & Found 会立即搜索每个来源并添加没有引用日志提及的对象。对于您刚刚在 GitTree 中执行的步骤,Undo 更快(撤消和重做)。

如果出现问题

“这个对象在本地不再可用。它可能已被修剪。”

Git 的垃圾收集将其删除。尝试另一个结果,或者仍然具有提交的克隆。

“有些来源不可用或已达到极限。这些结果是不完整的。”

该存储库的历史记录比一次扫描读取的历史记录还要多。使用过滤器查找您需要的内容,或运行更深入的扫描。

分支名称被拒绝。

使用分支还没有的名称,不带空格或 Git 不允许的字符。

问题

失物招领是免费计划的一部分吗?

是的。它只读取您的本地存储库,不需要托管帐户。

失物招领可以更改我的存储库吗?

只有 Create recovery branch 通过添加一个分支来更改它。扫描和预览不会改变任何事情。