В предыдущей статье мы научились обновлять проект через встроенный интерфейс, рассмотрели работу с ветками и отправку изменений в нужную ветку. В этой статье мы продолжим знакомиться с ветками в Intellij IDEA JAVA.
Мерж веток с разным наполнением
Мы уже научились отправлять изменения в нужную ветку. Но что, если изменения затрагивают старый код? Будет ли наша Java всегда использовать последние изменения? Давайте разберемся.
Переключимся на какую нибудь тестовую ветку
В одной из предыдущих статей мы с вами изменили способ инициализации ChromeDriver для его запуска через Docker. Для этого нам пришлось модифицировать абстрактный класс, от которого наследуются наши тесты. Эти изменения могут привести к конфликтам с ветками, в которых таких изменений нет.
Давайте изменим ветку NewFile на запуск через Контейнер Docker
Добавим какой нибудь тест
Комитим данное изменение
Так выглядит ветка master
Отличается наполнение нашего проекта. Давайте добавим ещё один тест
Мы добавили новый тест. Теперь в комите отображается только данное изменение
Комитим изменения
Видим, что появились зелёные стрелочки, обозначающие, что нам нужно данные ветки запушить
Сейчас мы смоделировали ситуацию, когда в наших ветках есть различия. Это происходит довольно часто, поскольку над проектом одновременно работает множество людей, каждый из которых вносит свои изменения.
Теперь давайте попробуем объединить ветку NewFie с основной (master). Для этого переключимся на ветку master и выполним команду Git - Merge.
И выбираем ветку NewFile
Как видим у нас появился конфликт. Их может быть много, в данном случае выбираем нужный и нажимаем Merge
У нас с вами открылось окно, где показаны места конфликтов
- Слева - ветка на которой мы находимся
- По середине - ветка, которая будет в итоге
- Справа - ветка которую с которой мы хотим объединить изменения
Нажимая на стрелочки мы берём изменения
Крестик, соответственно не берём из данной ветки эти изменения. После того как вы выбрали нужные изменения из обеих веток нажимаем Apply
После этого произошло успешное слияние и ветку можно запушить на Github
Стоит также отметить, что конфликтов по поводу ChromeDriver не было. Так как тут было простое изменение, мы заменили локальный запуск на запуск через Docker
Нажимаем Git -Push. Тоже самое проделываем и со второй веткой.
Теперь вы научились решать конфликтные ситуации при слиянии веток!
Весь свой код вы всегда можете клонировать себе по данной ссылке -
https://github.com/Timurchik57/JAVA
Если у вас есть вопросы или вы просто хотите стать частью команды тестировщиков, то переходи в ТГ канал, где можем пообщаться с единомышленниками и найти много интересных и полезных знаний!Также если вам нужна индивидуальная консультация, менторство и помощь в создании проекта пишите в ТГ канал!