Перейти к содержимому

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

  • автор:

Как создать 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». Вы можете создать собственные метки:

  1. для этого нажмите на кнопку «New label»
  2. введите название метки и выберите цвет для нее
  3. нажмите кнопку «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 — это запрос на слияние веток. Необходимость использования этой функции может возникнуть тогда, когда нужно перенести функциональность из одной ветки в другую.

  1. В разделе Merge Requests» нажмите на New Merge Request» для создания нового запроса на слияния одной ветки с другой.
  2. Выберите ветку, из которой хотите добавить изменения (в нашем случае development). В качестве «Target branch» выберите нужную вам ветку (у нас это master).
  3. Затем нажмите на кнопку «Compare branches and continue«.

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

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

¶ Members

В этом разделе руководитель проекта может добавить участников в проект.

  1. Для этого попросите сначала авторизиваться студента на сайте GitLab через корпоративную почту с доменом @miem.hse.ru.
  2. Затем в графе GitLab member or Email address введите имя пользователя и выберите его из списка.
  3. Укажите роль участника.
    • Developer(рекомендумая) — разработчик, имеет право на создание и редактрирование репозиториев, обсуждений, меток.
    • Guest — гость, не имеет право на редактирование, может только просматривать файлы.
    • Reporter — ограничены правы редактирования. Например, не может создавать новые ветки и делать merge requests
    • Maintainer — имеет расширенные права управления проектом. Может удалять репозитории.
  4. Нажмите 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 включают:

  1. Jobs, которые определяют, что делать. Например, задания по компиляции или тестированию кода.
  2. Stages, которые определяют, когда запускать задания. Например, этап, на котором выполняются тесты, запускается после этапа компиляции кода.

Как правило, pipeline выполняются автоматически и после создания не требуют вмешательства. Однако бывают случаи, когда вы можете вручную взаимодействовать с pipeline.

¶ Уровень видимости проекта

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

Уровни видимости:

  • Приватный (Private) проект — владелец должен явно дать доступ на чтение отдельным пользователям. Редактировать его могут только участники проекта.
  • Внутренний (Internal) — проект виден любому вошедшему пользователю GitLab. Редактировать его могут только участники проекта. Наблюдатели могут разветвить этот проект, внести в него изменения и отправить запрос на слияние.
  • Публичный (Public) — проект видим всем, редактировать его могут только учатники проекта. Наблюдатели могут разветвить этот проект, внести в него изменения и отправить запрос на слияние.

¶ Как изменить уровень видимости?

Уровень видимости может изменить только создатель проекта.

  1. Сначала нужно изменить видимость группы.
  • Шаг 1. Зайдите на страницу вашего проекта в GitLab;
  • Шаг 2. В боковой панеле найдите Settings (Настройки), General (Общие);

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

  • Шаг 4. Нажмите Save changes (Сохранить изменения).
  1. Теперь нужно изменить видимость репозитория.
  • Шаг 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

gitlab merge request

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 будет отображаться вторая ветка

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

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

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

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

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

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

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

комментирии в gitlab

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

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

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

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

что такое merge request

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

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

Читайте про Gitlab Wiki и документацию к проектам в Gitlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *