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.