Разработчик, путешествующий во времени

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

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

Введение

Представьте, что вы разработчик, работающий над проектом времени машины. Внезапно появляется ваш будущий я и предупреждает вас о критической ошибке в текущем кодовом репозитории! Вам нужно быстро сохранить незавершенную работу, исправить ошибку, а затем вернуться к текущему заданию. Эта задача проверит ваши навыки работы с git stash в сценарии с высокими рисками и искажением времени!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/DataManagementGroup(["Data Management"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/DataManagementGroup -.-> git/stash("Save Changes Temporarily") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/checkout("Switch Branches") subgraph Lab Skills git/stash -.-> lab-387759{{"Разработчик, путешествующий во времени"}} git/branch -.-> lab-387759{{"Разработчик, путешествующий во времени"}} git/checkout -.-> lab-387759{{"Разработчик, путешествующий во времени"}} end

Stash, Fix и Resume (Восстановление)

Исходное состояние

Вы находитесь в директории ~/project. Директория time-machine является новым Git-репозиторием со следующими файлами:

  • main-console.txt (содержимое: "Bug: Temporal Flux Unstable")
  • flux-capacitor.txt (содержимое: "Work in progress")
  • new-feature.txt (содержимое: "Untracked feature")

Вы можете использовать команду git status для проверки текущего статуса репозитория.

Задачи

  1. Сохраните (stash) ваши текущие изменения, включая неотслеживаемые файлы (untracked files).
  2. Исправьте "критическую ошибку" в ветке master, обновив содержимое файла main-console.txt на "Fixed: Temporal Flux Stabilized".
  3. Создайте новую ветку из ваших сохраненных (stashed) изменений, названную future-upgrades.
  4. Убедитесь, что исправление ошибки из ветки master также присутствует в ветке future-upgrades.

Требования

  • Все операции должны быть выполнены в директории ~/project/time-machine.
  • Убедитесь, что ваши исходные изменения (как отслеживаемые, так и неотслеживаемые) присутствуют в новой ветке.
  • Исправление ошибки в main-console.txt должно присутствовать в обеих ветках: master и future-upgrades.

Пример

После завершения задания ваш репозиторий должен выглядеть следующим образом:

В ветке master:

main-console.txt (content: "Fixed: Temporal Flux Stabilized")

В ветке future-upgrades:

main-console.txt (content: "Fixed: Temporal Flux Stabilized")  ## Содержит исправление ошибки из master
flux-capacitor.txt (content: "Work in progress")              ## Исходные отслеживаемые изменения (original tracked changes)
new-feature.txt (content: "Untracked feature")                ## Исходный неотслеживаемый файл (original untracked file)

Примечание: Чтобы достичь этого состояния, вам нужно убедиться, что обе ветки содержат исправление ошибки, сохраняя при этом ваши изменения в процессе работы (work-in-progress changes) в ветке future-upgrades.

✨ Проверить решение и практиковаться

Резюме

В этом задании вы практиковались в использовании git stash в имитированной аварийной ситуации. Вы научились быстро сохранять незавершенную работу (включая неотслеживаемые файлы), переключать контекст для исправления критических проблем и создавать новую ветку на основе сохраненных изменений. Эти навыки являются важными для поддержания плавного рабочего процесса при возникновении неожиданных задач, позволяя вам справляться с несколькими обязанностями, не теряя работы и не нарушая концентрацию.

Помните, что хотя git stash - это мощный инструмент для временного хранения изменений, его лучше использовать для краткосрочного хранения. Для более длительной работы или создания значительных функций часто лучше создавать отдельные ветки. Продолжайте практиковать эти навыки, и вы будете хорошо подготовлены к любым сценариям разработки, связанным с искажением времени!