Завершение, отмена или отмена запросов на вытягивание

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

| Visual Studio 2022 | Visual Studio 2019 | Visual Studio 2017 Visual Studio 2015

После того как все обязательные рецензенты утверждают запрос на вытягивание (PR) и запрос на вытягивание соответствуют всем требованиям политики ветви , вы можете объединить изменения в целевую ветвь и завершить запрос на вытягивание. Или если вы решили отказаться от изменений в запросе на вытягивание, вы можете отказаться от запроса на вытягивание.

Сведения об устранении изменений рецензентов и реагировании на комментарии к рецензированием и их разрешении см. в разделе "Комментарии к адресу".

Предварительные требования

  • Репозитории должны быть включены в проекте. Если центр Repos и связанные страницы не отображаются, см. статью "Включение или отключение службы Azure DevOps " для повторного создания репозиториев.

  • Чтобы завершить запрос на вытягивание, необходимо быть членом группы безопасности "Участники " или иметь соответствующие разрешения в проекте, где находится запрос на вытягивание.

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

  • Чтобы просмотреть или просмотреть PR, необходимо иметь базовый или более высокий доступ к проекту Azure DevOps.

  • Если вы не входите в проект, в который вы хотите внести свой вклад, добавьте его.

    Примечание

    Для общедоступных проектов пользователи, которым предоставлен доступ заинтересованных лиц, имеют полный доступ к Azure Repos.

  • Репозитории должны быть включены в проекте. Если центр Repos и связанные страницы не отображаются, см. статью "Включение или отключение службы Azure DevOps " для повторного создания репозиториев.
  • Чтобы завершить запрос на вытягивание, необходимо быть членом группы безопасности участников или иметь соответствующие разрешения в проекте, который вы хотите изменить.
  • Чтобы внести свой вклад в запрос на вытягивание, необходимо быть членом группы безопасности читателей или иметь соответствующие разрешения.
  • Чтобы просмотреть или просмотреть PR, необходимо быть членом проекта Azure DevOps с базовым доступом или выше. Если вы не член проекта, добавьте его.
  • Чтобы завершить запрос на вытягивание, необходимо быть членом группы безопасности участников для проекта Azure DevOps или иметь соответствующие разрешения.
  • Чтобы просмотреть или просмотреть PR, необходимо быть членом проекта Azure DevOps с базовым доступом или выше. Если вы не член проекта, добавьте его.
  • Чтобы внести свой вклад в запрос на вытягивание, необходимо быть членом группы безопасности читателей для проекта Azure DevOps или иметь соответствующие разрешения.

Проверка изменений слиянием

После завершения запроса на вытягивание Git добавляет новую фиксацию слияния в конец основной ветви. Эта фиксация слияния связывает предыдущие журналы основной ветви и исходной ветви запроса на вытягивание. Чтобы просмотреть предварительную фиксацию слияния и проверить наличие конфликтов слиянием, выберите меню "Дополнительные параметры " в правом верхнем углу страницы обзора запроса на вытягивание, а затем выберите " Просмотреть изменения слиянием".

Если вы изменили целевую ветвь после создания запроса на вытягивание, выберите "Перезапустить слияние ", чтобы создать новую предварительную фиксацию слияния и обновить представление изменения слияния.

Снимок экрана: параметры

Проверка политик ветвей

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

На вкладке " Обзор запроса на вытягивание" перечислены политики ветви, которые передаются или завершаются сбоем для запроса на вытягивание. В обзоре перечислены только неудачные политики, но можно просмотреть все проверки политики, выбрав "Просмотреть <n>".

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

Снимок экрана: просмотр политики рядом с требованием политики ветви в P R.

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

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

  1. Нажмите кнопку "Завершить" в правом верхнем углу, чтобы завершить запрос на вытягивание. Или щелкните стрелку раскрывающегося списка рядом с кнопкой "Завершить " и выберите один из вариантов.

    Снимок экрана: параметры кнопки

    • Завершите: завершите запрос на вытягивание и объедините изменения в целевую ветвь.
    • Настройка автоматического завершения. Настройте запрос на вытягивание для завершения и объединения после того, как он соответствует всем необходимым политикам ветви.
    • Пометить как черновик: вернуть PR в черновик состояния и удалить все голоса.
    • Отказ: закройте запрос на вытягивание без объединения изменений.
  2. В области "Полный запрос на вытягивание " в разделе " Тип слияния" выберите один из вариантов слияния.

    Снимок экрана: полное диалоговое окно P R.

    • Слияние (без быстрого переадресации): слияние с нелинейной историей, которая сохраняет все фиксации.
    • Фиксация squash: слияние с линейным журналом, объединяющим все исходные фиксации в одну фиксацию в целевом объекте, или сквош объединяет запрос на вытягивание.
    • Перебазировать и быстро перенаправить: перенаправите исходные фиксации на целевой объект и быстро вперед.
    • Полулинейное слияние: перенацеливает исходные фиксации в целевой объект и создает двух родительский слияние.

    Примечание

    Применяются существующие политики. Например, если ветвь в настоящее время имеет политику "только слияния сквош", необходимо изменить эту политику, если вы хотите использовать другой тип слияния.

  3. Выберите один из следующих вариантов после завершения. Некоторые параметры недоступны для некоторых типов слиянием.

    • Завершите связанные рабочие элементы после объединения: завершите все связанные рабочие элементы.
    • Удалите <имя> ветви после объединения: удалите исходную ветвь PR после слияния.
    • Настройка сообщения фиксации слиянием: добавление сообщения пользовательской фиксации слияния. При выборе этого параметра обновите сообщение фиксации слияния .
    • Переопределите политики ветви и включите слияние. Принудительное слияние, даже если запрос на вытягивание не удовлетворяет всем политикам ветви. Этот параметр доступен только в том случае, если у вас есть разрешение на принудительное применение политики .
  4. Выберите Завершить слияние.

  1. Нажмите кнопку "Завершить" в правом верхнем углу, чтобы завершить запрос на вытягивание. Или щелкните стрелку раскрывающегося списка рядом с кнопкой "Завершить " и выберите один из следующих параметров:

    Снимок экрана: параметры кнопки

    • Завершите: завершите запрос на вытягивание и объедините изменения в целевую ветвь.
    • Задайте автоматическое завершение. Если у вас есть политики ветвей, настройте запрос на вытягивание на завершение и слияние после того, как он соответствует всем необходимым политикам ветви.
    • Отказ: закройте запрос на вытягивание без объединения изменений.
  2. На экране полного запроса на вытягивание введите сообщение для фиксации слияния и обновите описание запроса на вытягивание.

    Диалоговое окно

  3. Выберите один из следующих вариантов:

    • Завершать связанные рабочие элементы после объединения для завершения всех связанных рабочих элементов.

    • Удалите <branch name> после объединения , чтобы удалить исходную ветвь из запроса на вытягивание.

    • Squash изменяется при слиянии для объединения, чтобы объединить ваш ЗАПРОС на вытягивание.

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

      Примечание

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

  4. Выберите Завершить слияние.

После завершения слияния все связанные рабочие элементы автоматически обновляются, чтобы показать завершение запроса на вытягивание.

Снимок экрана: связанные рабочие элементы, показывающие завершенные P Rs.

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

    Кнопка

    • Завершить: завершите запрос на вытягивание и объедините изменения в целевую ветвь.
    • Задать автоматическое завершение. Если у вас есть политики ветвей, можно выбрать параметр "Настроить автозаверление ", чтобы настроить запрос на вытягивание, чтобы закрыть после выполнения всех политик ветвей.
    • Отказ: закройте запрос на вытягивание без объединения изменений.
  2. В поле "Полный запрос на вытягивание" введите сообщение для фиксации слияния и обновите описание запроса на вытягивание.

    Диалоговое окно

  3. Выберите любой из следующих вариантов после завершения:

    • Завершать связанные рабочие элементы после объединения для завершения всех связанных рабочих элементов.
    • Удалите <branch name> после объединения , чтобы удалить исходную ветвь из запроса на вытягивание.
    • Squash изменяется при слиянии для объединения, чтобы объединить ваш ЗАПРОС на вытягивание.
    • Переопределите политики ветви и включите слияние , чтобы принудительно объединить ветвь, даже если она не удовлетворяет всем политикам ветви. Этот параметр доступен только в том случае, если у вас есть разрешения на принудительное применение политик .
  4. Выберите Завершить слияние.

Связанные рабочие элементы также обновляются с завершением запроса на вытягивание.

Связанные рабочие элементы, показывающие завершенные PR

Перебазировать во время завершения запроса на вытягивание

Существует несколько ситуаций, когда восстановление во время завершения запроса на вытягивание невозможно:

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

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

Основная проблема с несколькими слиянием

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

Разрешение конфликтов слияния

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

Снимок экрана: конфликты слияния на вкладке

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

Выберите "Задать автоматическое завершение " в раскрывающемся списке "Завершить ", чтобы завершить и объединить изменения запроса на вытягивание, как только условия соответствуют всем политикам ветви. После завершения запроса на вы получите уведомление по электронной почте. Если конфликт или ошибка препятствуют завершению запроса на вытягивание, сообщение электронной почты уведомляет вас о проблеме.

Примечание

Параметр "Задать автоматическое завершение" доступен в Azure Repos и TFS 2017 и более поздних версий при наличии политик ветвей. Если вы не видите автоматическое завершение установки, у вас нет политик ветви. Дополнительные сведения см. в разделе "Политики ветвей".

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

Снимок экрана: изменение необязательной политики, необходимой на панели

Начиная с TFS 2018 с обновлением 2, на странице обзора запроса на вытягивание отображается список невыполненных критериев политики, ожидающих запроса на вытягивание. Если на панели "Включить автоматическое завершение " задана политика, ее можно вернуть на необязательное значение на странице обзора .

Нажмите кнопку "Отмена автозавершения" , чтобы отключить автозавершение.

Снимок экрана: запрос на вытягивание в состоянии автозаполнения.

Снимок экрана: запрос на вытягивание в состоянии автозаполнения.

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

Снимок экрана: автозавершение запроса на вытягивание в списке запросов.

Отмена или повторная активация запроса на вытягивание

Чтобы отказаться от изменений и запроса на вытягивание без объединения, выберите "Отказаться " в раскрывающемся списке на кнопке "Завершить ". Вы по-прежнему можете просматривать отброшенный запрос на вытягивание и оставаться связанным с рабочими элементами.

Чтобы повторно активировать заброшенный запрос на вытягивание в любое время, откройте запрос на вытягивание на вкладке " Отброшенный " в представлении "Запрос на вытягивание " и выберите "Повторно активировать " в правом верхнем углу.

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

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

  1. Откройте завершенный запрос на вытягивание и нажмите кнопку "Вернуть". Это действие создает новую ветвь с изменениями, которые отменяют запрос на вытягивание в существующей целевой ветви в репозитории.

  2. В области "Возврат запроса на вытягивание " выполните следующие действия.

    1. В разделе "Целевая ветвь" выберите ветвь, в которой требуется отменить изменения запроса на вытягивание.
    2. В разделе "Имя ветви раздела" измените имя ветви запроса на вытягивание при необходимости.
    3. Нажмите кнопку "Вернуть".
  3. На экране создания запроса на вытягивание нажмите кнопку "Создать".

  4. Объедините новый запрос на вытягивание, чтобы завершить возврат.

Примечание

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

Дальнейшие действия