Как создать Merge Request?
Всем доброго дня. В ТЗ на стажировку попросили отправить ссылку на merge request:
«Выполнив задачу вы создаёте merge request в основную ветку вашего репозитория. Ссылку на этот merge request прикрепляете в ответ на задачу.»
Как правильно это нужно сделать? Проект залил на GitHub, но дальше этого никуда не ушло. Где-то писали, что нужно сделать форк репозитория, но у меня эта кнопка на странице проекта неактивна, так как я являюсь владельцем этого репозитория (так там пишет). В Git я полный ноль пока что, так что очень прошу объяснить как для полного нуба.
- Вопрос задан 03 мая 2023
- 273 просмотра
4 комментария
Простой 4 комментария
сделать merge request на GitLab через Git bash
и дальше как создать merge request? на сайте GitLab’a https://docs.gitlab.com/ee/user/project/push_options.html перепробовал все команды и никакого эффекта.
Отслеживать
задан 27 фев 2021 в 18:10
352 1 1 серебряный знак 14 14 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
На ГитЛаб сайте не нашел этой инфы, нашел в инете :
1. git pull 2. git checkout - b test 3.git add . 4.git commit -m 'explanation what is changed' 5.git request-pull master origin 6.git push -o merge_request.create -o merge_request.remove_source_branch
Отслеживать
ответ дан 27 фев 2021 в 18:57
352 1 1 серебряный знак 14 14 бронзовых знаков
- gitlab
- git-merge
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
¶ Group overview
Details — подраздел Group overview, куда вы попадаете, как только откроете группу вашего проекта. На этой страничке находится три вкладки:
- subgroups и projects — репозитории с файлами, созданными участниками проекта
- shared projects — репозитории других проектов, куда дали доступ всей вашей команде
- archived projects — архивированные репозитории, которые доступны только для чтения.
Там же находится кнопка New project, с помощью которой можно создать новый репозиторий.
¶ Activity
Activity — это журнал активности участников проекта. В нем отображаются все изменения, внесенные в ваш проект с указанием на их автора.
¶ Issues
Issues — это основная среда для совместной работы над идеями и планирования работы в GitLab. Они позволяют обмениваться предложениями и обсуждать их до и во время их реализации между вами и вашей командой или сторонними авторами. Issues всегда привязаны к одному из ваших репозиториев в проекте, однако в разделе List вы будете видеть все Issues вашего проекта.
Этим разделом участники пользуются нечасто, потому что функцию трекинга исполняют сервисы Trello и Taiga.
¶ List
В этом подразделе вы можете создавать Issues — обсуждение задачи с командой. Чтобы создать обсуждение, нажмите «New issue» и заполните информацию о задаче, которую вы собераетесь совместно решать: опишите ее и добавьте нужные файлы. В боковом меню справа вы можете найти вкладку Labels и добавить метку: выбрать из списка предложенных или создать собственную с помощью кнопки «Create project labels». Теперь ваше обсуждение будет выглядеть вот так:

issue с метками
¶ Labels
Labels — это метки для issue. Они могут отражать статус задачи или использоваться для сортировки обсуждений.
Если вы перейдете в этот подраздел, то увидите, что по умолчанию уже создано две метки: «To do» и «Doing». Вы можете создать собственные метки:
- для этого нажмите на кнопку «New label»
- введите название метки и выберите цвет для нее
- нажмите кнопку «Create label»
Чтобы установить метку на issue вернитесь в редактирование issue в подразделе List. В боковом меню справа вы можете найти вкладку Labels и добавить только что созданную вами метку.
¶ Boards
Здесь расположен Kanban: доска с колонками по умолчанию «Open», «To Do», «Doing» и «Closed». Все новые issues сразу попадают в колонку «Open». Если вы перетащите левой кнопки мыши ваше обсуждение в другую колонку, то в подразделе «List» около обсуждение появится метка, соответствующая названию колонки на доске.
Чтобы добавить новую колонку, создайте новую метку в подразделе «Labels». Затем вернитесь в Boards и нажмите на кнопку «Add list». Поставьте галочку напротив только что созданной метки, и на доске появится одноименная колонка.
¶ Milestones
Milestones позволяют создавать спринты, или циклы, в период которых отслеживаются issues и merge requests.
Чтобы создать новую Milestones, нажмите на кнопку «New milestones» и введите заголовок, добавьте описание и установите приблизительные сроки для исполнения.
¶ Merge Requests
Merge request — это запрос на слияние веток. Необходимость использования этой функции может возникнуть тогда, когда нужно перенести функциональность из одной ветки в другую.
- В разделе Merge Requests» нажмите на New Merge Request» для создания нового запроса на слияния одной ветки с другой.
- Выберите ветку, из которой хотите добавить изменения (в нашем случае development). В качестве «Target branch» выберите нужную вам ветку (у нас это master).
- Затем нажмите на кнопку «Compare branches and continue«.

- Если не возникло конфликтов, на новой странице задайте заголовок, описание и в поле Assignee выберите своего руководителя.

Рекомендуем вам делать при слиянии веток сквош: объединять коммиты. Это помогает избежать путаницы и длинного списка коммитов. Для этого просто поставьте галочку около пункта «Squash commits when merge request is accepted». Далее нажмите на кнопку «Merge».

¶ Members
В этом разделе руководитель проекта может добавить участников в проект.
- Для этого попросите сначала авторизиваться студента на сайте GitLab через корпоративную почту с доменом @miem.hse.ru.
- Затем в графе GitLab member or Email address введите имя пользователя и выберите его из списка.
- Укажите роль участника.
- Developer(рекомендумая) — разработчик, имеет право на создание и редактрирование репозиториев, обсуждений, меток.
- Guest — гость, не имеет право на редактирование, может только просматривать файлы.
- Reporter — ограничены правы редактирования. Например, не может создавать новые ветки и делать merge requests
- Maintainer — имеет расширенные права управления проектом. Может удалять репозитории.
- Нажмите Invate.
¶ Project Overview
После того, как вы откроете один из репозиториев вашего проекта, количество вкладок в боковом меню увеличится. Первой вкладкой будет раздел Project Overview.
¶ Details
В этом подразделе хранятся все файлы выбранного репозитория и основная информация о нем. Здесь же находится кнопка Clone, с помощью которой можно узнать URL репозитория для копирования его на свой компьютер.
Чтобы создать папку, файл, ветку или загрузить новый файл с компьютера, нажмите на плюс в левом верхнем углу.
Если хотите переключиться на другую ветку, нажмите на ее название в левом верхнем углу и выберите нужную.

подраздел Details
¶ Activity
Activity — это журнал активности участников проекта. В нем отображаются все изменения, внесенные в выбранный репозиторий с указанием на их автора.
¶ Repository
¶ Files
Этот подраздел аналогичен подразделу Details: здесь тоже хранятся все файлы выбранного репозитория, находится кнопка Clone, плюс и возможность переключаться между ветками.

подраздел Files
¶ Commits
Здесь хранится история коммитов выбранного репозитория:

подраздел Commits
¶ Branches
В этом подразделе хранится список веток выбранного репозитория. Чтобы перейти на нужную ветку, просто щелкните по ней.
¶ Contributors
Здесь вы можете увидеть общее количество коммитов и количество коммитов каждого участника проекта в выбранном репозитории.
¶ Graph
График репозитория визуально отображает историю изменений в выбранном репозитории:

подраздел Graph
¶ Compare
Если в репозитории несколько веток, то их можно сравнить, чтобы увидеть изменения.
¶ CL / CD
GitLab CI / CD — это встроенный в GitLab инструмент для разработки программного обеспечения с использованием непрерывных методологий :
- continuous integration(CI)
- continuous delivery (CD)
- continuous deployment (CD)
Continuous integration работает путем отправки небольших фрагментов кода в базу кода вашего приложения, размещенную в репозитории Git, и при каждом нажатии запускает конвейер сценариев для создания, тестирования и проверки изменений кода перед их объединением в основную ветвь.
Continuous delivery и deployment состоят из следующего шага CI, направляющего ваше приложение в ветку master репозитория при каждом пуше.
Эти методологии позволяют обнаруживать ошибки на ранних этапах разработки.
¶ Pipelines, Jobs and Schedules
Pipelines — это компонент верхнего уровня continuous integration, delivery и deployment.
Pipelines включают:
- Jobs, которые определяют, что делать. Например, задания по компиляции или тестированию кода.
- Stages, которые определяют, когда запускать задания. Например, этап, на котором выполняются тесты, запускается после этапа компиляции кода.
Как правило, pipeline выполняются автоматически и после создания не требуют вмешательства. Однако бывают случаи, когда вы можете вручную взаимодействовать с pipeline.
¶ Уровень видимости проекта
Каждый проект имеет уровень видимости, который контролирует, кто имеет доступ на чтение страниц проекта или репозитория.
Уровни видимости:
- Приватный (Private) проект — владелец должен явно дать доступ на чтение отдельным пользователям. Редактировать его могут только участники проекта.
- Внутренний (Internal) — проект виден любому вошедшему пользователю GitLab. Редактировать его могут только участники проекта. Наблюдатели могут разветвить этот проект, внести в него изменения и отправить запрос на слияние.
- Публичный (Public) — проект видим всем, редактировать его могут только учатники проекта. Наблюдатели могут разветвить этот проект, внести в него изменения и отправить запрос на слияние.
¶ Как изменить уровень видимости?
Уровень видимости может изменить только создатель проекта.
- Сначала нужно изменить видимость группы.
- Шаг 1. Зайдите на страницу вашего проекта в GitLab;
- Шаг 2. В боковой панеле найдите Settings (Настройки), General (Общие);

- Шаг 3. Измените уровень видимости на тот, который вам нужен.

- Шаг 4. Нажмите Save changes (Сохранить изменения).
- Теперь нужно изменить видимость репозитория.
- Шаг 1. Откройте на странице проекта в GitLab нужный репозиторий;
- Шаг 2. В боковой панеле найдите Settings (Настройки), General (Общие);

- Шаг 3.Permissions (Разрешения). Измените уровень видимости на тот, который вам нужен.

- Шаг 4. Нажмите Save changes (Сохранить изменения).
Пожалуйста, устновите видимость группы и репозитория Public перед защитой проекта!
Gitlab merge request
Gitlab merge request — позволяет перед коммитом в master ветку отправить внесенные изменения другим разработчикам проекта, это аналог pull request в git. merge request позволяет предотвратить внесение некорректных изменений, которые сломают проект.
Gitlab merge request: как сделать и принять MR
Зайдя в Gitlab от имени пользователя, который может работать с проектом скачаем исходный код через git clone

ip адрес в примере используется для демонстрации, его нужно заменить на свой.
git clone git@ip-address:root/myproject.git
Теперь на локальном компьютере присутствуют скрипты проекта, или один скрипт index.py как в примере.
Переходим в каталог
Теперь можно создать новую ветку
В ней вносим изменения
Открыв файл в текстовом редакторе добавим комментарий
Затем добавляем все содержимое каталога на staging
И заливаем в ветку 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 будет отображаться вторая ветка

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

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

В интерфейсе есть кнопки Open in Web IDE и Check out branch
Нажатие на первую позволит увидеть разницу до и после внесения изменений, код будет выводиться на экране разделенном на две части вертикально. Аналогично git diff.
Если выбрать Check out branch — отобразится инструкция с командами, позволяющими скачать изменений на локальный компьютер, исправить все конфликты и загрузить в репозиторий.
В случае если изменения корректны и не нанесут ущерба проекту можно нажать Merge.

В консоли когда merge выполнен, можно переключиться на master и забрать через pull изменения.
Изменения будут залиты в master. Найдя MR всегда можно воспользоваться опцией revert для отмены.
Читайте про Gitlab Wiki и документацию к проектам в Gitlab