Что такое запросы на включение изменений?

Завершено

Начнем с:

  • Просмотр ветвей и их важность для запросов на вытягивание.
  • Определение запроса на вытягивание.
  • Узнайте, как создать запрос на вытягивание, просмотреть состояния запроса на вытягивание и объединить запрос на вытягивание.

Ветви

Во-первых, давайте определим, какие ветви являются, почему они важны для разработчиков и как они связаны с запросами на вытягивание.

Ветви — это изолированные рабочие области, в которых можно разрабатывать работу, не затрагивая других пользователей в репозитории. Они позволяют разрабатывать функции, устранять ошибки и безопасно экспериментировать с новыми идеями в автономной области репозитория.

Разработчики, работающие над независимыми ветвями, являются распространенным понятием в современной разработке программного обеспечения. Имея собственную ветвь, разработчик может вносить любые изменения, называемые фиксациями, не беспокоясь о том, как их фиксации влияют на других разработчиков, работающих над собственными ветвями.

Слияние ветвей

Хотя каждый разработчик работает над отдельной ветвью отлично подходит для отдельной производительности, он открывает новую задачу. В какой-то момент ветвь каждого разработчика необходимо объединить в общую ветвь, например main. По мере масштабирования проектов может быть много слияний, которые должны произойти, и это становится все более важным для отслеживания и просмотра каждого слияния. Необходимо отслеживать несколько изменений в проекте, где приходят запросы на вытягивание.

Что такое запрос на включение изменений?

Запрос на вытягивание — это способ документировать изменения ветви и сообщить, что изменения из ветви разработчика готовы объединиться в базовую (основную) ветвь. Запросы на вытягивание позволяют заинтересованным лицам просматривать и обсуждать предложенные изменения, чтобы обеспечить максимально высокий уровень качества кода в базовая ветвь.

Запрос на pull request сравнивает изменения между двумя ветками.

  • Ветвь сравнения — это собственная ветвь разработчика, которая содержит определенные изменения, которые они внесли.
  • Базоваяветвь, также называемая главной ветвью, — это ветвь, в которую необходимо объединить изменения.

При создании pull request GitHub автоматически отображает представление сравнения веток.

Создание запроса на вытягивание

Теперь давайте рассмотрим, как создать запрос на вытягивание!

  1. В противном случае GitHub.comперейдите на главную страницу репозитория.

  2. В меню «Ветвь» выберите ветвь, содержащую ваши коммиты.

    Снимок экрана: создание новой ветви и его именование.

  3. Над списком файлов в желтом баннере нажмите кнопку «Сравнить и создать пулреквест», чтобы создать пулреквест для связанной с ней ветки.

    Скриншот желтого текстового поля, на котором выделена зеленая кнопка сравнения и запроса на слияние.

  4. В раскрывающемся меню базовой ветви выберите ветвь , в которую вы хотите объединить изменения. Затем выберите раскрывающееся меню "Сравнить ветвь ", чтобы выбрать ветвь, в который вы внесли изменения.

  5. Введите название и описание запроса на вытягивание.

  6. Чтобы создать pull request, подготовленный для проверки, нажмите кнопку «Создать pull request». Чтобы создать черновик пулл-реквеста, выберите раскрывающееся меню и выберите Создать черновик пулл-реквеста, затем выберите Черновик пулл-реквеста.

Состояния запроса на вытягивание

Теперь давайте рассмотрим различные состояния запроса на вытягивание.

  • Черновик запроса на вытягивание . При создании запроса на вытягивание вы можете выбрать: либо создать запрос, готовый к просмотру, либо черновик. Запрос на вытягивание с состоянием черновика не может быть объединен, и владелец кода не запрашиваются автоматически для просмотра черновых запросов на вытягивание.

  • Открытый pull-запрос - Открытое состояние означает, что pull-запрос активен и еще не объединен с базовой ветвью. Вы по-прежнему можете вносить фиксации и обсуждать и просматривать потенциальные изменения с помощью участников совместной работы.

  • Закрытие запроса на вытягивание – Вы можете закрыть запрос на вытягивание, не объединяя его в основную ветку. Этот вариант полезен, если изменения, предложенные в ветви, больше не нужны, или если в другой ветви предлагается другое решение.

  • Объединенный запрос на вытягивание — состояние объединенного запроса на вытягивание означает, что обновления и фиксации из ветви сравнения были объединены с базовой ветвью. Любой пользователь с доступом для передачи данных к репозиторию может выполнить такое слияние.

Слияние запросов на вытягивание

  1. Под именем вашего репозитория выберите pull-запросы.

    Скриншот верхней навигационной панели репозитория с выделенной вкладкой

  2. В списке pull request выберите тот, который вы хотите объединить.

  3. Прокрутите вниз до нижней части запроса на вытягивание. В зависимости от параметров слияния, включенных для репозитория, можно:

    • Объедините все фиксации в базовую ветвь, нажав кнопку "Отправить запрос на слияние ". Если параметр слияния pull request не отображается, выберите выпадающее меню слияния, выберите параметр Создать фиксацию слияния и нажмите кнопку Создать фиксацию слияния.

      Снимок экрана раскрывающегося меню зеленой кнопки запроса на слияние, на котором выбран элемент

    • Объединение коммитов позволяет взять все ваши коммиты и объединить их в один. Этот параметр помогает сохранить журнал репозитория более удобочитаемым и упорядоченным. Выберите опцию объединения и сжатия, а затем нажмите кнопку объединения и сжатия.

    • Параметр "Перебаза" и "Слияние" позволяет выполнять фиксации без фиксации слияния. Это поддерживает линейную историю проекта. Выберите раскрывающееся меню слияния, затем выберите параметр Перебазировать и объединить, а потом нажмите кнопку Перебазировать и объединить.

  4. При появлении запроса введите сообщение о фиксации или примите сообщение по умолчанию.

  5. Если у вас несколько адресов электронной почты, связанных с учетной записью GitHub.com, выберите раскрывающееся меню адреса электронной почты и выберите адрес электронной почты, используемый в качестве адреса электронной почты автора Git. В раскрывающемся меню отображаются только проверенные адреса электронной почты. Если вы включили конфиденциальность адреса электронной почты, в качестве адреса электронной почты автора фиксации используется адрес электронной почты GitHub для сообщений без ответа.

    Снимок экрана изменения коммита с полем описания и раскрывающимся меню выбора электронной почты для выбора автора коммита.

  6. Выберите "Подтвердить слияние", "Подтвердить объединение и слияние" или"Подтвердить перебазирование и слияние".

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

Дополнительные параметры запроса на вытягивание

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

Запрос на рецензирование

Вы можете запросить конкретных участников совместной работы, чтобы они проверили ваш пулл-реквест. В качестве рецензентов можно выбрать только сотрудников с доступом для записи в репозиторий. Это помогает убедиться, что изменения проверяются правильными людьми перед слиянием.

  1. При создании или просмотре pull-реквеста найдите раздел "Рецензенты" на правой панели.
  2. Найдите и выберите имена пользователей GitHub участников, имеющих доступ на запись в репозиторий.
  3. Выбранные рецензенты получат уведомление с целью проверки вашего пулл-реквеста.

Обязательные обзоры и правила защиты ветки

Некоторые репозитории используют правила защиты веток, требующие пулл-реквестов для выполнения определённых условий, прежде чем их можно объединить. К общим требованиям относятся:

  • По крайней мере один утверждающий отзыв от другого участника совместной работы.
  • Выполнение всех необходимых проверок состояния, таких как рабочие процессы непрерывной интеграции (CI).

Если pull-запрос не соответствует этим требованиям, кнопка слияния будет отключена до тех пор, пока все условия не будут выполнены.

В разделе "Слияние" в нижней части страницы запроса на вытягивание отображаются обязательные правила для репозитория.

Обычно эти правила настраиваются администраторами репозитория в параметрах защиты ветви.

Проверки состояния и непрерывная интеграция (CI)

Если ваш репозиторий использует GitHub Actions или другую систему CI, пул-реквесты могут автоматически выполнять проверки статуса при внесении изменений. Вот некоторые примеры.

  • Выполнение модульных тестов
  • Проверка форматирования кода
  • Проверка сканирования безопасности

Запросы на вытягивание обычно должны проходить все обязательные проверки статуса, прежде чем их можно влить в базовую ветвь. Неудачные проверки отображаются непосредственно на странице pull request.

Сохранение помеченных звёздами репозиториев

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

Чтобы открыть репозиторий, выполните следующие действия.

  1. Перейдите на страницу репозитория на GitHub.com.
  2. В правом верхнем углу нажмите кнопку ⭐ "Звезда ".

Вы можете просмотреть все репозитории, которые вы отметили звездой, выбрав изображение профиля, а затем Ваши закладки.

Сочетания клавиш

GitHub предлагает множество сочетаний клавиш, которые помогут вам ускорить работу.

Чтобы просмотреть все доступные сочетания клавиш, выполните следующие действия.

  • Нажмите ? в любой точке GitHub.com.

Вы увидите список сочетаний клавиш для навигации по проблемам, пулл-реквестам, репозиториям и т. д.

Использование палитры команд

Палитра команд на GitHub помогает быстро переходить на страницы, выполнять распространенные действия или репозитории поиска без использования клавиатуры.

Чтобы открыть палитру команд, выполните следующие действия.

  • Нажмите клавишу Ctrl+K (Windows/Linux) или ⌘+K (Mac).

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

Применение того, что вы узнали

Затем вы выполните упражнение, которое принимает то, что вы рассмотрели и применяете его к реальному примеру.