Практическое задание

Эта задача — шаг 18 курса «Расследование на сервере»

Заметки расследования в detached HEAD

средне~5 мин

Напарник вёл хронологию инцидента в репозитории /root/ir-notes: переключился на старый коммит, чтобы свериться, и прямо там закоммитил файл timeline.md. Репозиторий остался в состоянии detached HEAD — коммит с хронологией не принадлежит ни одной ветке, и первое же git switch main его потеряет. Сохрани его: создай ветку incident-42, вершина которой — этот коммит с timeline.md.

Что потренируешь:
  • detached HEAD
  • git branch
  • git switch
  • git reflog
  • ссылки на коммиты

Разбор темы

Ветка в git — всего лишь подвижная ссылка на коммит, а HEAD обычно указывает на ветку. Если сделать checkout на конкретный коммит, HEAD начинает указывать прямо на него — это detached HEAD. Новые коммиты в таком состоянии ничем не удерживаются: после переключения на ветку они становятся недостижимыми, и их со временем уберёт сборщик мусора. Спасение — создать на текущем коммите ветку (git branch или git switch -c), пока ты на нём стоишь; если момент упущен, хеш коммита ещё виден в git reflog, и ветку можно создать по нему.

Что проверяется

  1. ветка incident-42 существует
  2. хронология сохранена в ветке

Как это выглядит