Как создать запрос на слияние (Merge request) в Gitlab
В данной статье рассмотрим пример как влить свои изменения в чужую ветку Gitlab.
1. Создание вливаемой ветки на основании существующей
4. Описание запроса на слияние
5. Создание запроса на слияние
В прошлой статье мы рассмотрели как отправлять свои изменения в свою ветку Gitlab, но что если мы работаем в команде и имеется удаленная ветка в репозитории, куда все программисты (и не только) складывают конечные результаты своей работы, т.е. вливают свои изменения (коммиты) в чужую ветку, которую (условно) все считают конечной веткой. У такой удаленной ветки пусть будет главный хозяин, которые принимает чужие изменения или наоборот - требует доработать, т.е. выполняет ревью коммитов. Рассмотрим простую схему для лучшего понимания.
Предварительные действия:
Все действия будут показаны на примере среды разработки Idea Intellij в которой работают тестировщики и пишут тест-кейсы на java. Далее каждый тестировщик отправляет изменения из своей ветки в конечную ветку develop.
Idea Intellij удобна тем, что там имеется встроенный инструмент GIT, т.е. не приходится отдельно работать в менеджере git или в консоли git bash.
01 Создадим новую ветку из ветки "develop", чтобы потом в нее влить только новые коммиты, которые будут нами созданы. Для этого (на примере все той же Idea Intellij), нужно перейти на вкладку "Git" слева в нижней части окна программы, встать на ветку develop и нажать на "+" -> указать имя ветки и нажать Enter:
Таким образом мы создадим новую ветку с именем "new_branch" на основании ветки "develop".
02 Работаем с новой веткой "new_branch", делаем нужные изменения, коммитим их, отправляем (git push) в ветку "new_branch". При этом локальная ветка"new_branch" созданная на основании "develop" создастся не только локально, но и на сервере репозитория.
03 Создадим запрос на слияние "Merge request" с веткой "develop" коммитов из ветки "new_branch". Для этого переходим на сайт Gitlab и ищем в меню кнопку и на новой открывшейся странице найдем кнопку создания запроса выберем ветки слияния:
1. В форме "Source branch" выбрать ветку, из которой слить изменения (коммиты).
2. В форме "Target branch" выбрать ветку, в которую нужно влить изменения (коммиты).
3. Нажать кнопку "Compare branches and continue".
04 Далее добавить описание запроса на слияние:
1. "Заголовок" - краткое описание вливаемых изменений.
2. "Discription" - описание выполненной работы.
05 Далее зарегистрировать запрос на слияние:
1. "Отвественный" - ответственный за выполнение задачи ("Assign to me" - назначить меня)
2. "Reviewer" - ответственный за проверку (хозяин ветки "develop")
3. Чек-бокс "Delete source branch when merge request is accepted" - означает, что вливаемая ветка "new_branch" будет удалена из репозитория. Локально она останется у нас на ПК. Эта галочка полезна, чтобы не засорять репозиторий лишними ветками.
4. Нажать кнопку "Create запрос на слияние".
06Создан новый запрос на слияние:
после создания осуществляется переход на страницу запроса
Запрос можно редактировать, нажав кнопку .
Важно, что после создания "Merge request", можно отправлять новые коммиты в ветку "new_branch" репозитория Gitlab - эти коммиты будут попадать в созданный запрос на слияние "Merge request" и будут применены при слиянии веток после одобрения:
07Одобрение и слияние веток:
Хозяину ветки "develop" остается проверить коммиты, "Одобрить" и принять через "Слияние" наши изменения из "new_branch":
При возникновении конфликтов при слиянии веток, хозяину "develop" нужно их разрешить самостоятельно или отправить инициатору изменений "new_branch" для разрешения конфликтов на его стороне.