在 Git 项目的提交历史记录中查找已删除的文件

本文讨论在项目的提交历史记录中查找已删除的文件。 当您想要恢复您在项目中删除的文件时,这很方便。

事不宜迟,让我们直接进入。


Git 中查找和恢复已删除文件的步骤

在我们删除了一个文件,想不起来文件路径的场景下,我们可以执行下面的命令来查找路径。

$ git log --all --full-history -- "<OurFile>"

上面的命令将输出我们提交历史中的所有提交,其中包含名称与我们的模式 <OurFile> 匹配的文件。 当然,您必须将 <OurFile> 替换为您文件的正确名称。

输出可以帮助我们使用提交哈希值获取文件路径,如下所示。

$ git show --pretty="" --name-only <sha1-commit-hash>

现在我们有了文件的路径。 但是,我们想要恢复文件的特定版本。

我们该怎么做?

如下所示,我们必须获取更改文件的提交。

$ git log --all --full-history -- <path-to-file>

要获得我们想要的版本,我们将运行:

$ git show <sha1-commit-hash> -- <path-to-file>

将文件恢复到工作副本

如下图所示,我们将使用 git checkout 命令来恢复我们的文件。

$ git checkout <sha1-commit-hash>^ -- <path-to-file>

我们添加了插入符号 ^ 以指示 Git 从上一次提交中获取文件版本。 这确保我们在文件被删除时获得文件的先前内容。

简而言之,Git 版本控制系统对丢失用户数据非常严格。 如果您在项目中删除了一个文件并且您需要恢复它,请按照我们上面概述的步骤进行操作。

您不需要知道文件的完整路径。