Объединить ветки, git merge

Объединить ветки, git merge

git merge

Для объединения веток используйте команду git merge, находясь в ветке, куда хотите внести изменения.

Команда

# Переключится на ветку
git switch <имя ветки приемник>

# Объединит текущую ветку с указанной
git merge <имя ветки источник>

# Отменит объединение в случае конфликтов
git merge --abort

Параметры команды

  • <имя ветки приемник> - Имя ветки, в которую нужно внести изменения
  • <имя ветки источник> - Имя ветки, из которой будут вноситься изменения

Описание

Переключитесь на ветку, в которую нужно внести изменения, используя команду git switch. После этого объедините эту ветку с той, откуда хотите перенести изменения, командой git merge, указав имя нужной ветки в конце команды.

В случае отсутствия конфликтов объединения, слияние веток произойдёт автоматически и сразу будет создан коммит объединения. При наличие конфликтов git запишет различие в файлы и коммит создавать не будет. В сообщении будут указаны имена конфликтных файлов.

# Сообщение о конфликте при объединении
CONFLICT (content): Merge conflict in <имя файла>

Для объединения файлов будет создана специальная ветка, которая будет иметь имя - <имя ветки приемник> |MERGING. Нужно разрешить конфликты, отредактировав автоматически объединенные изменения вручную, после чего проиндексировать изменения командой git add и отправить коммит объединения самостоятельно, командой git commit.

В том случае, если находясь в ветке объединения <имя ветки приемник> |MERGING, вы захотите отменить процедуру объединения веток, воспользуйтесь командой git merge с параметром --abort. Процесс объединения будет остановлен, а состояние файлов в проекте вернётся к состоянию до начала объединения.

Автоматически объединённые изменения

В случаях конфликта git изменяет файлы в рабочем каталоге, добавив в них изменения, сделанные в обеих ветках. Если изменения были внесены в одну и туже область, все они будут добавлены в файл, при этом конфликтная область будет специальным образом оформлена.

# Начало конфликтной области
<<<<<<< <текущая ветка / HEAD>

	# Изменения текущей ветки

=======

	# Изменения ветки источник

>>>>>>> <имя ветки источник>
# Конец конфликтной области

Вам нужно вручную отредактировать область между <<<<<<< и >>>>>>>, после чего завершить процесс объединения, сохранив изменения в репозиторий.