Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
После того как все необходимые рецензенты одобрят запрос на вытягивание (PR) и PR соответствует всем требованиям политики ветви, вы можете объединить изменения в целевую ветвь и завершить PR. Или если вы решили не продолжать изменения в PR, вы можете отказаться от PR.
Чтобы учитывать изменения рецензентов и отвечать на комментарии, см. Address comments.
Предварительные условия
Категория | Требования |
---|---|
доступ к проекту | Член проекта . |
Разрешения | — Просмотр кода в частных проектах: по крайней мере базовый доступ. — Клонирование или внесение вклада в код в частных проектах: Участник группы безопасности для участников или наличие соответствующих разрешений в проекте. — Задайте разрешения ветви или репозитория: управление разрешениями для ветви или репозитория. — Измените ветвь по умолчанию: . Измените политики и разрешения для репозитория. — Импорт репозитория: член группы безопасности администраторов проекта или разрешение уровня проекта Git на создание репозитория установлено в «Разрешить» . Дополнительные сведения см. в разделе "Настройка разрешений репозитория Git". |
услуги | Repos включено. |
Инструменты | Необязательно. Используйте команды az repos: Azure DevOps CLI. |
Примечание.
В общедоступных проектах пользователи с доступом Stakeholder имеют полный доступ к Azure Repos, включая возможность просмотра, клонирования и участия в коде.
Категория | Требования |
---|---|
доступ к проекту | Член проекта . |
Разрешения | — Просмотр кода: доступ уровня Basic хотя бы . — Клонирование или участие в коде: член группы безопасности участников или обладатель соответствующих разрешений в проекте. |
услуги | Repos включено. |
Дополнительные сведения о разрешениях и доступе см. в разделе "Репозиторий Git по умолчанию" и " Разрешения ветви" и "Сведения о уровнях доступа".
В Azure DevOps Services можно управлять PR и другими ресурсами из интерфейса командной строки Azure сazure-devops
помощью расширения. Сведения о работе с интерфейсом командной строки Azure DevOps Services см. в статье "Начало работы с Azure DevOps CLI". Команды Azure Repos CLI для PR используют az repos pr.
Проверка изменений после слияния
После завершения запроса на слияние Git добавляет новый коммит слияния в конец главной ветки. Эта фиксация слияния связывает предыдущие истории основной ветви и исходной ветви PR. Чтобы увидеть предварительный коммит слияния и проверить наличие конфликтов слияния, выберите меню "Дополнительные параметры" в правом верхнем углу на странице обзора PR, а затем выберите "Просмотреть изменения слияния".
Если вы изменили целевую ветвь после создания PR, выберите «Перезапустить слияние», чтобы создать новую промежуточную фиксацию слияния и обновить просмотр изменений слияния.
Просмотр политики филиала
Команды могут задать политики ветвей, требующие, чтобы PR в защищенных ветвях соответствовали определенным критериям до слияния. Вы можете увидеть политики ветвей, применяемые к вашему PR, требуются ли они для слияния и проходит ли PR проверку или нет.
На вкладке "Обзор PR" приведён общий итог политик ветвей, которые успешно проходят или завершаются сбоем для PR. В обзоре перечислены только неудачные политики, но вы можете просмотреть все проверки политики, выбрав "Просмотреть <n>".
На странице обзора PR требования политики ветви имеют значок . Выберите "Дополнительные параметры " рядом с требованием, а затем выберите "Просмотреть политику ", чтобы перейти на страницу "Политики ветви" в параметрах проекта.
Завершите запрос на вытягивание
После разрешения любых конфликтов слияния и если пулл-реквест удовлетворяет всем правилам ветви и имеет все необходимые одобрения, вы можете завершить пулл-реквест.
Выберите "Завершить" в правом верхнем углу, чтобы завершить PR. Или щелкните стрелку раскрывающегося списка рядом с кнопкой "Завершить " и выберите один из вариантов.
- Завершите PR: выполните объединение изменений в целевую ветвь.
- Настройка автоматического завершения. Настройте pr для завершения и слияния после выполнения всех необходимых политик ветви.
- Пометить как черновик: вернуть ПР в статус черновика и удалить все голоса.
- Отклонить: закройте PR, не объединяя изменения.
В области "Полный pull-запрос" в пункте "Тип слияния" выберите один из вариантов слияния.
- Слияние (без быстрого переадресации): слияние с нелинейной историей, которая сохраняет все фиксации.
- Squash-коммит: слияние с линейной историей, которое объединяет все исходные коммиты в один коммит в целевой ветке или слияние PR с помощью squash. Помните, что новый коммит будет создан для целевой ветви без сохранения истории коммитов из исходной ветви.
- Перебазирование и быстрое продвижение: перебазируйте исходные коммиты на целевую ветку и выполните быстрое продвижение.
- Полулинейное слияние: переносит исходные коммиты на целевую ветку и создает двухродительское слияние.
Примечание.
Существующие политики применяются. Например, если в вашей ветви в настоящее время установлена политика "только слияние с объединением всех коммитов", необходимо изменить эту политику, если вы хотите использовать другой тип слияния.
Выберите любой из следующих вариантов после завершения. Некоторые параметры недоступны для некоторых типов слияний.
- Завершите связанные рабочие элементы после объединения: завершите все связанные рабочие элементы.
- Удалить <имя ветки> после объединения: удалите исходную ветвь PR после объединения.
- Настройка сообщения фиксации слияния: добавьте собственное сообщение для фиксации слияния. При выборе этого параметра обновите сообщение коммита слияния.
- Переопределите правила ветви и включите слияние. Принудительно выполнить слияние, даже если PR не удовлетворяет всем правилам ветви. Этот параметр доступен только в том случае, если у вас есть разрешение обхода политики.
Выберите Завершить слияние.
Выберите "Завершить" в правом верхнем углу, чтобы завершить PR. Или щелкните стрелку раскрывающегося списка рядом с кнопкой "Завершить " и выберите один из следующих параметров:
- Завершите: выполните запрос на внесение изменений и объедините изменения в целевую ветвь.
- Установите автоматическое завершение. Если у вас есть политики ветви, настройте PR для завершения и слияния после того, как оно соответствует всем необходимым политикам ветви.
- Отменить: закрыть PR, не объединяя изменения.
На экране Завершение pull request введите сообщение для коммита слияния и обновите описание PR.
Выберите любой из следующих параметров:
Завершите связанные рабочие элементы после объединения для завершения всех связанных рабочих элементов.
Удалите
<branch name>
после объединения , чтобы удалить исходную ветвь из PR.При слиянии используйте сжатое слияние вашего PR. Помните, что новый коммит будет создан для целевой ветки без сохранения истории коммитов из исходной ветки.
Переопределите политики ветви и включите слияние , чтобы принудительно объединить ветвь, даже если она не удовлетворяет всем политикам ветви. Этот параметр доступен только в том случае, если у вас есть разрешения на освобождение от применения политик.
Примечание.
Существующие политики по-прежнему применяются. Например, если в вашей ветви в настоящее время используется политика "только слияние скваша", необходимо изменить эту политику, чтобы использовать другие типы слияний.
Выберите Завершить слияние.
После завершения слияния все связанные рабочие элементы автоматически обновляются и показывают завершение PR.
Ребейз при завершении PR
Существуют несколько ситуаций, когда перенастройка при завершении PR невозможна:
- Если политика в целевой ветви запрещает использование стратегий перебазировки, вам потребуется разрешение на переопределение политик ветви, чтобы выполнить перебазировку.
- Если для исходной ветки ПР установлены правила, ее нельзя перебазировать. Перебазирование изменит исходную ветвь без прохождения процесса утверждения политики.
- Если вы использовали расширение для разрешения конфликтов слияния, перебазирование невозможно. Разрешения конфликтов, применяемые к трехстороннему слиянию, редко бывают успешными или допустимыми при перебазировании всех коммитов PR по отдельности.
Во всех этих случаях вы по-прежнему можете перебазировать ветвь локально, а затем отправить вверх или объединить изменения при завершении pr.
Базовая проблема, возникающая при нескольких слияниях
В некоторых случаях PR может иметь несколько истинных базовых точек слияния, и эта ситуация может вызвать проблемы с безопасностью. Если файлы в PR имеют разные версии на разных базах слияния, возникает предупреждение о множественных базах слияния. Дополнительные сведения и устранение см. в разделе Несколько баз слияния.
Разрешить конфликты слияния
Изменения файлов в ветви могут конфликтовить с изменениями в другой ветви. Когда не ясно, как выполнить слияние изменений, Git отображает файлы, имеющие конфликты, на странице обзора PR. Перед объединением PR-ветки с целевой веткой необходимо разрешить любые конфликты слияния, прежде чем можно будет объединить PR или установить для PR автозаполнение. Инструкции по решению конфликтов слияния см. в разделе Разрешение конфликтов слияния.
Настройка запроса на вытягивание для автозавершения
Выберите «Автозавершение» в выпадающем меню «Завершение», чтобы завершить и объединить изменения PR, как только будут выполнены все политики ветки. После завершения PR вы получите уведомление по электронной почте. Если конфликт или ошибка препятствуют завершению PR, вы получите уведомление по электронной почте о проблеме.
Примечание.
Параметр Set auto-complete доступен в Azure Repos и TFS 2017 и более поздних версиях, когда у вас есть политики для ветвей. Если вы не видите Установить автозаполнение, у вас нет политик для веток. Дополнительные сведения см. в разделе "Политики ветви".
По умолчанию PR, установленный для автозаполнения, ожидает только выполнения обязательных политик. На панели Включить автоматическое завершение можно также ожидать дополнительных политик.
Начиная с TFS 2018 Обновление 2, на странице Обзор PR отображается список невыполненных критериев политики, которых ожидает PR. Если вы задали политику в панели Включение автоматического завершения как обязательную, вы можете снова сделать её необязательной на странице Обзор.
Нажмите кнопку "Отменить автозавершение ", чтобы отключить автозавершение.
Запрос на вытягивание, установленный на автозавершение, отображает значок автозавершения на странице Запросы на вытягивание.
Закрытие или повторная активация пул-реквеста
Чтобы отменить ваши изменения и PR без выполнения слияния, выберите Отказаться в списке, который появляется при нажатии на кнопку Завершить. Вы по-прежнему можете просмотреть отклоненный PR, и он остается связанным с рабочими элементами.
Чтобы повторно активировать заброшенный PR в любое время, откройте PR на вкладке "Отмененные" в представлении 'Pull Request' и выберите "Повторно активировать" в правом верхнем углу.
Отмена завершенного пул-реквеста
Чтобы отменить изменения из PR, выполните следующие действия. Дополнительные сведения см. в разделе "Отмена изменений".
Откройте завершенный PR и выберите "Вернуться". Это действие создает новую ветвь с изменениями, которые отменяют PR в текущей целевой ветви вашего репозитория.
В панели Откатить pull request:
- В разделе "Целевая ветвь" выберите ветвь, в которой требуется отменить изменения pr.
- В разделе "Требуется имя тематической ветви" измените имя откатной ветви PR, если хотите.
- Нажмите кнопку "Вернуть".
На экране «Новый запрос на вытягивание» выберите «Создать».
Объедините новый PR для завершения восстановления.
Примечание.
Ветвь, созданная во время этого восстановления, содержит один коммит, который отменяет все изменения файлов из исходного PR. Ветвь не содержит возвращенную фиксацию для каждой фиксации в исходном PR.