>_ IzzyLab

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

Поменяй порядок коммитов через rebase

сложно

В /root/repo три коммита в таком порядке (от старого к новому): base, затем hotfix, затем feature. Логически горячая правка hotfix должна была лечь поверх фичи, а не под неё. Переставь коммиты так, чтобы порядок стал base, feature, hotfix — то есть hotfix стал самым свежим коммитом, а feature — предыдущим. Каждый коммит трогает свой файл, так что конфликтов не будет; число коммитов остаётся три.

Что потренируешь:
  • git rebase
  • интерактивный rebase
  • порядок коммитов
  • GIT_SEQUENCE_EDITOR
  • история git

Разбор темы

История git — это последовательность коммитов, и её можно переиграть заново инструментом git rebase. В интерактивном режиме (-i) git открывает список коммитов от старого к новому в виде строк-инструкций: порядок строк задаёт порядок применения, поэтому переставив строки местами, ты меняешь очерёдность коммитов. Редактор списка можно подсунуть неинтерактивно через переменную GIT_SEQUENCE_EDITOR. Когда каждый коммит трогает свой файл, перестановка проходит без конфликтов.

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

  1. hotfix стал последним
  2. feature предпоследний
  3. все три файла и коммита на месте

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