
Объединить ветки, 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>
# Изменения текущей ветки
=======
# Изменения ветки источник
>>>>>>> <имя ветки источник>
# Конец конфликтной области
Вам нужно вручную отредактировать область между <<<<<<< и >>>>>>>, после чего завершить процесс объединения, сохранив изменения в репозиторий.