在 Git 中把一个文件恢复到以前的提交状态

Azhar Bashir Khan 2022年4月22日
在 Git 中把一个文件恢复到以前的提交状态

Git 是一个版本控制系统。我们使用它来跟踪对项目目录中的文件所做的更改。在协作开发环境中,许多团队成员经常处理相同的文件并更改这些文件。

我们经常面临这样一种情况,即我们不再找到适合我们目的的文件更改的当前版本。因此,在这种情况下,我们希望将此类文件还原为该文件的特定先前版本。

使用 Git,我们可以完成将文件恢复到以前的提交。

本教程将教授如何在 Git 中将文件还原为以前的提交。我们将通过一个例子来说明这一点。

在 Git 中把文件恢复到之前的提交

我们在协作开发环境中使用 Git 来跟踪对文件所做的更改。Git 使用提交来完成跟踪文件更改的任务。

因此,使用文件的提交历史,我们可以查看不同版本对文件所做的各种更改。

通常,我们可能会遇到一种情况,即我们发现文件的当前版本不再适合我们的需要。此外,我们发现文件提交历史中的特定修订更符合我们当前的需求。

因此,在这种情况下,我们希望将文件恢复到以前的版本或在 Git 仓库的提交历史记录中提交。

假设我们的项目 Git 仓库中有一个名为 README.md 的文件。我们可以使用 git log 命令浏览该文件的提交历史记录,如下所示。

$ git log --oneline README.md
814b51e Updated README.md, further notes
9cbe84d Updated README.md, added some notes
dfe8d6c Initial commit

我们发现 SHA 哈希 9cbe84d 给出的提交时文件 README.md 的版本是我们想要的。

为此,我们可以使用命令 git checkout。将文件恢复到先前提交的命令语法是 git checkout <commit> -- <file-to-revert>

因此,我们需要执行以下操作以将文件 README.md 还原为 SHA 哈希 9cbe84d 给出的提交所给出的版本。

$ git checkout 9cbe84d -- README.md

README.md 文件恢复为由 SHA 哈希 9cbe84d 给出的先前提交。

请注意谨慎使用 git checkout 命令。对文件所做的本地更改将被丢弃。Git 用给定的提交版本替换文件。

确保仅在你确定并且不希望那些未保存的本地更改时才使用它。

因此,我们展示了如何在 Git 中将文件恢复为之前的提交。

如需更多信息,请访问以下链接。

  1. git 检出
  2. Git 基础-撤消操作