gitlab merge request

gitlab merge request — позволяет перед коммитом в master ветку отправить внесенные изменения другим разработчикам проекта, это аналог pull request в git. merge request позволяет предотвратить внесение некорректных изменений, которые сломают проект.


Gitlab merge request: как сделать и принять MR

Зайдя в Gitlab от имени пользователя, который может работать с проектом скачаем исходный код через git clone

gitlab merge request

ip адрес в примере используется только для демонстрации, его нужно заменить на свой.


git clone [email protected]ip-address:root/myproject.git

Теперь на локальном компьютере присутствуют скрипты проекта, или один скрипт index.py как в примере.


Переходим в каталог

cd myproject/


Теперь можно создать новую ветку

git checkout -b update-code


В ней вносим изменения

mcedit index.py

Открыв файл в текстовом редакторе добавим комментарий


Затем добавляем все содержимое каталога на staging

git add .

Коммитим изменения

git commit -m 'updated code'


И заливаем в ветку update-code

git push origin update-code

Total 3 (delta 1), reused 0 (delta 0)
remote: To create a merge request for update-code, visit:
remote: http://ip-address/root/myproject/merge_requests/new?merge_request%5Bsource_branch%5D=update-code
remote:
To ip-address:root/myproject.git
* [new branch] update-code -> update-code


После обновления страницы в интерфейсе Gitlab будет отображаться вторая ветка

gitlab merge request как сделать

Рядом с именем ветки есть кнопка Merge request

При нажатии на нее открывается диалог позволяющий задать описание, добавить комментарий, установить Milestone и выбрать кому из разработчиков будет отправлен MR.


Также можно установить, что нужно чье-либо одобрение для принятия Merge-request и слияния с веткой master.

gitlab merge request как принять

После заполнения полей формы нужно нажать «Submit merge request» внизу.

Теперь тот кому отправлен MR получит оповещение и сможет увидеть все внесенные изменения, затем закрыть MR, выполнить слияние с master или начать дискуссию.

merge request в gitlab
 

В интерфейсе есть кнопки «Open in Web IDE» и «Check out branch«
 

Нажатие на первую позволит увидеть разницу до и после внесения изменений, код будет выводиться на экране разделенном на две части вертикально. Аналогично git diff.


Если выбрать «Check out branch» — отобразится инструкция с командами, позволяющими скачать изменений на локальный компьютер, исправить все конфликты и загрузить в репозиторий.


В случае если изменения корректны и не нанесут ущерба проекту можно нажать Merge.

что такое merge request

В консоли когда merge выполнен, можно переключиться на master и забрать через  pull изменения.

git checkout master

git pull origin master


Изменения будут залиты в master. Найдя MR всегда можно воспользоваться опцией revert для отмены.