恢复丢失的文件

GitGitBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

作为一名开发者,你可能会遇到重要文件被意外删除并提交的情况。这个挑战模拟了这样的场景,测试你使用 Git 的历史检查和状态恢复工具来恢复丢失文件并将项目恢复到正常工作状态的能力。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/reflog("Log Ref Changes") subgraph Lab Skills git/add -.-> lab-387781{{"恢复丢失的文件"}} git/status -.-> lab-387781{{"恢复丢失的文件"}} git/commit -.-> lab-387781{{"恢复丢失的文件"}} git/checkout -.-> lab-387781{{"恢复丢失的文件"}} git/log -.-> lab-387781{{"恢复丢失的文件"}} git/reflog -.-> lab-387781{{"恢复丢失的文件"}} end

恢复丢失的文件

在开始这个挑战之前,已经在 ~/project/important-project 目录中为你初始化了一个 Git 仓库。该仓库包含多次提交,其中包括两个重要文件的创建以及随后的意外删除。以下是需要了解的内容:

  • 仓库的初始提交添加了一个 README.md 文件。
  • 两个关键文件 important_algorithm.pycrucial_data.txt 在后续提交中被添加。
  • 之后又有几次提交,包含各种更改。
  • 在某个时间点,important_algorithm.pycrucial_data.txt 被意外删除,并且这次删除被提交。
  • 在意外删除之后,至少还有一次提交。

你的任务是通过查看仓库的历史记录来恢复被删除的文件,然后提交恢复的文件。

任务

  1. 调查仓库的历史记录,找到 important_algorithm.pycrucial_data.txt 被删除的时间点。
  2. 将仓库恢复到删除之前的状态。
  3. 保留原始提交,并创建一个新的提交,提交信息为 "Recover deleted files"。

要求

  • ~/project/important-project 目录中操作。
  • 确保恢复后 important_algorithm.pycrucial_data.txt 存在。
  • 确保最后一次提交信息为 "Recover deleted files",并且提交历史记录被保留。

示例

成功完成挑战后,在项目目录中运行 ls 应显示:

$ ls ~/project/important-project
important_algorithm.py crucial_data.txt README.md

运行 git status 应显示工作目录是干净的:

$ git status
On branch master
nothing to commit, working tree clean

运行 git log 应显示你的新提交在最顶部:

$ git log --oneline
8876d8b (HEAD -> master) Recover deleted files
9b3525c Update project status
5e6234c Oops, accidentally deleted important files
9de9506 Update algorithm TODO
01c36ae Add crucial data and algorithm
638a98d Initial commit
✨ 查看解决方案并练习

总结

在这个挑战中,你面对了一个常见的 Git 场景:意外删除文件。你学会了如何:

  1. 检查仓库的完整历史记录,包括更改 HEAD 的操作。
  2. 将仓库恢复到特定的先前状态,有效地“回退时间”到项目的某个点。
  3. 创建一个新的提交来保存项目的恢复状态。

这些技能对于找回丢失的提交、撤销错误以及维护清晰的项目历史记录非常宝贵。请记住,虽然这些工具可以帮助你避免灾难,但最好的做法是谨慎工作,并频繁进行有良好记录的提交,以从一开始就避免此类情况。

通过完成这个挑战,你已经获得了使用 Git 一些最强大的恢复工具的实践经验,这些技能将在你的开发生涯中为你提供帮助。