Восстановление потерянных файлов

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В качестве разработчика вы можете столкнуться с ситуацией, когда важные файлы были случайно удалены и зафиксированы в репозитории. Эта задача имитирует такую ситуацию, проверяя вашу способность использовать инструменты 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

Восстановление потерянных файлов

Перед началом выполнения этого задания для вас был инициализирован Git-репозиторий в директории ~/project/important-project. Этот репозиторий содержит несколько коммитов, включая создание и последующее случайное удаление двух важных файлов. Вот что вам нужно знать:

  • Репозиторий был создан с начальным коммитом, в котором был добавлен файл README.md.
  • Два важных файла, important_algorithm.py и crucial_data.txt, были добавлены в последующем коммите.
  • Затем были еще несколько коммитов с различными изменениями.
  • В какой-то момент файлы important_algorithm.py и crucial_data.txt были случайно удалены, и это удаление было зафиксировано в коммите.
  • После случайного удаления было выполнено как минимум еще один коммит.

Ваша задача - восстановить удаленные файлы, просмотрев историю репозитория, и затем зафиксировать восстановленные файлы в новом коммите.

Задачи

  1. Исследуйте историю репозитория, чтобы определить, когда были удалены файлы important_algorithm.py и crucial_data.txt.
  2. Восстановите репозиторий до состояния, которое было непосредственно перед удалением.
  3. Сохраните исходные коммиты и создайте новый коммит с сообщением "Recover deleted files" (Восстановить удаленные файлы).

Требования

  • Работайте в директории ~/project/important-project.
  • Убедитесь, что после восстановления присутствуют файлы important_algorithm.py и crucial_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, навыки, которые будут вам полезны на протяжении всей вашей карьеры разработчика.