Есть вопросы?
Закажите звонок специалиста!
Есть вопросы?
Закажите звонок специалиста!
Слияние веток Git является основным процессом при работе у разработчиков. Бывает так, что разработчики в своих разных ветках изменяют один и тот же файл, а также одно и тоже место.
Git может автоматически объединить файлы, если они были изменены в разных местах и на разных строках.
Но, если Git не справился автоматически, то придется исправлять конфликты вручную.
Для этого рассмотрим несколько конфликтов при слиянии.
Если не готовы заниматься решением конфликтов, то можно ввести:
$ git merge --abort
Эта команда попытается откатить состояние до того, что было до запуска слияния.
Предположим, что пришлось делать слияние из ветки feature в ветку develop. Мы переключаемся в ветку feature и выполняем следующую команду.
$ git merge develop Auto-merging test.conf CONFLICT (content): Merge conflict in test.conf Automatic merge failed; fix conflicts and then commit the result.
Если мы откроем файл на который ссылается ошибка “test.conf”, то можем увидеть следующий текст:
$ cat test.conf <<<<<<< HEAD Version5 - Изменение для branch feature ======= Version4.1 - Ветка branch develop >>>>>>> develop
Можем посмотреть git log каждой ветки и выбрать последнее по времени изменение в наших ветках.
$ git log --oneline --left-right HEAD...MERGE_HEAD > f099a6c (develop) New version 4.1 < f054b69 (HEAD -> feature/new-site) New version in feature < f4cb127 Add text for feature < c5e28e9 (gitlab/feature/new-site) New file static site
Это список коммитов, которые были включены в слияние, с указанием также ветки разработки, в которой находится каждый коммит.
Смотрим изменения, которые происходили в коммите:
$ git show f099a6c New version 4.1 diff --git a/test.conf b/test.conf index 2937fe3..d4867e4 100644 --- a/test.conf +++ b/test.conf @@ -1 +1 @@ -Version4 - Ветка branch develop +Version4.1 - Ветка branch develop
Видим последние изменения и меняем файл test.conf по последнему коммиту.
После того, как изменили файл по актуальным изменениям, можно продолжить слияние веток без конфликтов:
$ git merge develop Already up to date.
Нужна помощь? Настройки и обслуживание git мы осуществляем в рамках услуги DevOps-аутсорсинг. Также возможны разовые проектные работы.