Ответ
Основная команда для слияния веток — git merge <branch-name>. Она интегрирует изменения из указанной ветки в текущую.
Базовый рабочий процесс:
# 1. Убедитесь, что вы находитесь в ветке-приёмнике (например, main или develop)
$ git checkout main
# 2. Выполните слияние с веткой, содержащей новые функции (feature-branch)
$ git merge feature-branch
Что происходит при git merge:
- Git находит общего предка (common ancestor) двух веток.
- Создаётся новый коммит слияния (merge commit), который объединяет изменения из обеих веток. У этого коммита два родителя.
- Если изменения в одних и тех же файлах конфликтуют, Git приостанавливает операцию и требует разрешения конфликтов вручную.
Ключевые опции и команды:
git merge --no-ff <branch>: Гарантирует создание коммита слияния даже если возможен fast-forward (перемотка). Это полезно для сохранения истории ветвления.git merge --abort: Прерывает слияние в случае конфликта и возвращает репозиторий в состояние до начала операции.
Альтернатива — git rebase:
# Вместо слияния можно перебазировать текущую ветку на основную
$ git checkout feature-branch
$ git rebase main
# Затем выполнить fast-forward merge в main
$ git checkout main
$ git merge feature-branch
Сравнение: merge сохраняет полную историю с коммитами слияния, rebase создаёт линейную историю, «перемещая» ваши коммиты на вершину основной ветки. Выбор зависит от предпочтений команды и workflow.