Всем доброго времени суток и погнали! Допустим у нас есть две ветки master и new_branch и мы хотим их объединить вместе со всеми внесенными в них изменениями.
Для этого выберем ветку где мы хотим чтобы у нас происходило сведение изменений.
git checkout master
Здесь я выбрал основную ветку 'master' и именно в нее будут записаны все изменения двух веток. Давайте проверим:
git log --oneline --decorate
С помощью данной команды мы проверяем в какой ветке мы находимся. В моем случае это master(HEAD->master).
Все готово к началу объединения(слияния) веток между собой, для этого мы выполняем следующую команду:
git merge new_branch
где git merge - команда для объединения веток, а new_branch -название ветки изменения которой мы хотим объединить с текущей веткой. Напомню что мы находимся в ветке master. После выполнения данной команды у нас в ветке master будет создан новый коммит в котором будут объединены все изменения двух веток(master, new_branch).
Теперь после объединения веток мы можем избавиться от ветки new_branch, так как ее изменения сохранены в ветке master. Для этого удалим ее:
git branch -d new_branch
после выполнения данной команды ветка 'new_branch' будет удалена. Но все же сам процесс объединения двух веток может порождать конфликты. Когда вы в одной и той же части файла в каждой из веток внесли разные изменения. В этом случае системе контроля нужно будет определиться какие изменения ей утвердить.
Характерным обозначением что у вас при слиянии веток произошел конфликт являются подобные обозначения <<<<<<< HEAD.
Для разрешений конфликтов существует специальная команда git:
git mergetool
которая запускает визуальное средство для нахождения и разрешения конфликтов.
На этом дорогие друзья у меня на сегодня все. Желаю вам успехов и удачи! Пока!