Разберёшь, как Git сводит ветки, останавливается на конфликте и переписывает коммиты при rebase. Потренируешься читать общий предок, стадии index и последствия выбора merge, rebase или squash.
Сравнишь fast-forward с трёхсторонним merge и проследишь роль общего предка. Разберёшь, когда нужен merge commit, как остановить слияние и почему повторный merge той же ветки не возвращает отменённые изменения.
Посмотришь, как конфликт оставляет три версии файла в index и маркеры в working tree. Научишься извлекать base и стороны, а при rebase правильно определять смысл ours и theirs.
Проследишь, как rebase повторно записывает коммиты поверх нового основания, меняя их hash. Сравнишь merge, rebase и squash, а также применишь abort и --onto для переноса части ветки.