Бөлісу құралы:


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

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

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

Чтобы устранить изменения рецензентов, ответить на комментарии и устранить их, см . примечания к адресу.

Необходимые компоненты

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

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

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

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

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

    Примечание.

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

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

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

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

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

Снимок экрана: параметры слияния представления и перезапуска в меню

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

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

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

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

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

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

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

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

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

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

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

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

    Примечание.

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

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

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

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

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

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

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

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

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

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

    • Squash изменяется при слиянии с сквошом слиянием вашего PR. Помните, что новая фиксация будет создана для целевой ветви без сохранения журнала фиксации из исходной ветви.

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

      Примечание.

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

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

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

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

Перебаза во время завершения pr

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

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

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

Базовая проблема, возникающая при нескольких слияниях

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

Устранение конфликтов слияния

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

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

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

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

Примечание.

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

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

Снимок экрана: изменение необязательной политики на требуемую на панели включения автоматического завершения.

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

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

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

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

На странице "Запросы на вытягивание" отображается значок автозавершения.

Снимок экрана: автозавершение pr в списке PR.

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

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

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

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

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

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

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

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

  4. Объедините новый PR для завершения восстановления.

Примечание.

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

Следующие шаги