intermediate
Merge
Объединяйте истории, сохраняя обе линии работы и явные точки интеграции.
Merge объединяет истории. **Fast-forward** сдвигает указатель ветки, если нет расходящихся коммитов. **Merge commit** имеет двух родителей и фиксирует интеграцию двух линий работы.
git switch main
git merge feature/login # merge commit или FF
git merge --no-ff release-2.1 # всегда явная точка интеграции
Merge сохраняет топологию — полезно для release-веток, аудита и понимания, когда параллельная работа влилась. Маркеры конфликта (`<<<<<<<`) — Git не смог склеить автоматически; семантическая корректность проверяется тестами.
На интервью: merge vs rebase, fast-forward vs merge commit, разрешение конфликтов и когда важна форма веток.
Типовые ошибки: «чистый» текстовый merge с неверной семантикой; merge без обновления целевой ветки; огромные merge без review.
Компромисс — явная история интеграции (merge commits) против линейной читаемости (rebase на приватных ветках).
Чеклист:
- Различайте fast-forward и merge commit.
- Конфликты с учётом intent обеих веток.
- Тесты после интеграции.
- Мелкие merge через pull request.