使用 Git 命令恢复特定数据

已完成

使用 Git 命令恢复数据对于开发人员非常重要。 它有助于撤消意外更改、还原已删除的文件或恢复丢失的提交。 这有助于最大程度地减少意外问题并让项目顺利运行。 但是,请务必小心。 使用本节中所述的 Git 命令时,请谨慎谨慎,尤其是在更改提交历史记录或还原更改时,因为错误可能会导致数据丢失。

Git 数据恢复命令

数据恢复的 Git 命令可分为多个类别:恢复提交、文件、特定代码行以及已删除的提交或分支。

恢复提交

  • git 日志 - 显示存储库的提交历史记录。 您可以浏览日志以找到要恢复的提交。
  • git checkout <commit> - 切换到特定提交,有效“恢复”该提交时的存储库状态。
  • git cherry-pick <commit> - 将特定提交中的更改应用到当前分支。

恢复文件

  • git checkout <commit><file> - 从之前的提交中还原特定文件。
  • git restore <文件> - 放弃本地更改并将文件还原到其上次提交状态(仅当尚未提交更改时才有效)。

恢复特定代码行

  • git blame <文件> - 显示文件中每行的修订版本和作者,帮助你找到引入特定更改的提交记录。
  • git show <commit>:<file> - 显示特定提交时文件的内容。 可以指定提交和文件路径,以查看当时的内容。

恢复已删除的提交或分支

  • git reflog - 显示所有提交记录。 可以使用它查找以前删除的提交或分支的 SHA-1 哈希,然后签出或还原该提交或分支。
  • git fsck --lost-found - 检查存储库的完整性,并列出任何无法从分支或标记访问的提交。 可以用它来恢复丢失的提交。

请记住仔细使用这些命令,尤其是在更改提交历史记录或还原更改时。 在开始之前,始终备份您的存储库,或者在进行任何恢复操作前使用 git stash 保存您的当前更改。

示例方案

让我们演练一个示例方案,演示如何使用 Git 命令恢复已删除的文件。 我们假设 Git 存储库中名为 example.txt 的文件被意外删除,需要恢复该文件。

查看提交历史记录:

  • 首先显示提交历史记录:git log
  • 在提交历史记录中,查找文件 example.txt 最后出现时所在提交的 SHA-1 哈希值。

还原已删除的文件:

  • 找到提交的 SHA-1 哈希后,请使用 git checkout 还原文件:git checkout <commit_SHA>^ -- example.txt
  • <commit_SHA> 替换为提交的 SHA-1 哈希。 ^ 符号表示该提交的父级,有效地将文件还原到删除前的状态。

验证更改:

  • 还原文件后,通过检查存储库状态检查它是否已成功还原:git status
  • 验证 example.txt 是否列为已修改或未跟踪的文件。

暂存和提交更改

  • 如果文件被列为已修改文件,请将其暂存以准备提交:git add example.txt
  • 使用明确的提交消息提交更改:git commit -m "Restored example.txt"