在 Git 中将文件差异化为任意版本

本文讨论了如何将单个文件与 Git 中的一个版本进行比较。 如果您的存储库的某个分支中有一个文件有 30 个迭代,您可以将当前版本与任何其他版本进行比较。

让我们看看如何做到这一点。


在 Git 中将文件差异化为任意版本

为了更简单的上下文,假设我们的 master 分支中有一个 README.md 文件,其中包含三十次迭代。 我们可以运行下面的命令来:

$ git diff master~25:README.md README.md

将我们当前的 README.md 文件与我们的 master 分支 25 次修订前的文件进行比较。 请记住,此命令会将旧的 README.md 文件与我们工作树中的版本进行比较。

为了与我们的 master 分支中提交的版本进行比较,我们将运行:

$ git diff master~25:README.md master:README.md

或者,您可以使用提交的 SHA-1。 按着这些次序。

首先,我们将使用我们需要的文件版本检索提交的 SHA-1。 运行 git log 命令,如下所示。

$ git log --README.md

记下您要比较的版本的 SHA-1 并运行以下命令。

$ git diff SHA-1:README.md README.md

我们还可以使用此方法来区分存储库中的子目录,如下所示。

$ git diff <revision>: bar/ HEAD:bar/

总之,Git 允许我们将单个文件版本与我们存储库中的任意版本进行比较。 我们已经介绍了如何区分单个文件的修订。