>_ IzzyLab

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

Допиши строку в старый коммит через rebase edit

сложно

В /root/repo три коммита. Средний из них (add config) создал файл config.ini, но в нём забыли строку timeout=30. Добавь эту строку в тот самый коммит — так, будто её там и не забывали: config.ini в этом коммите должен содержать timeout=30, число коммитов должно остаться прежним (три), а третий коммит (add readme) должен идти после исправленного, как и раньше.

Что потренируешь:
  • git rebase -i
  • edit коммита
  • git commit --amend
  • rebase --continue
  • переписывание истории

Разбор темы

Интерактивный rebase умеет не только выкидывать коммиты, но и останавливаться на выбранном для правки: в сценарии у нужной строки действие pick меняют на edit, и git перематывает историю на этот коммит, отдавая управление. Дальше правку вливают в текущий коммит через amend (это дописывает существующий коммит, а не создаёт новый), после чего перебазировка доигрывает остаток. Так изменение оказывается «внутри» старого коммита, а число коммитов и их порядок не меняются.

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

  1. timeout=30 в среднем коммите
  2. по-прежнему три коммита
  3. порядок сохранён

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