Ветки, слияния и rebase

Разберёшь, как Git сводит ветки, останавливается на конфликте и переписывает коммиты при rebase. Потренируешься читать общий предок, стадии index и последствия выбора merge, rebase или squash.

  1. 3.1 Слияние

    Сравнишь fast-forward с трёхсторонним merge и проследишь роль общего предка. Разберёшь, когда нужен merge commit, как остановить слияние и почему повторный merge той же ветки не возвращает отменённые изменения.

  2. 3.2 Конфликты

    Посмотришь, как конфликт оставляет три версии файла в index и маркеры в working tree. Научишься извлекать base и стороны, а при rebase правильно определять смысл ours и theirs.

  3. 3.3 Rebase

    Проследишь, как rebase повторно записывает коммиты поверх нового основания, меняя их hash. Сравнишь merge, rebase и squash, а также применишь abort и --onto для переноса части ветки.