Сведения о слиянии запросов на вытягивание
В запросе на вытягивание предлагается выполнить слияние изменений, внесенных в главную ветвь, в базовую. По умолчанию для любого запроса на вытягивание можно выполнить слияние в любое время, если главная ветвь не конфликтует с базовой. Однако при слиянии запроса на вытягивание в определенную ветвь могут быть ограничения. Например, можно выполнить слияние запроса на вытягивание только в ветвь по умолчанию, если проходят необходимые проверки состояния. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.
Вы можете настроить запрос на вытягивание для автоматического объединения при соблюдении всех требований к объединению. Дополнительные сведения см. в разделе Автоматическое слияние запроса на вытягивание.
Если в запросе на вытягивание есть конфликты слияния или если вы хотите протестировать изменения перед слиянием, можно проверить запрос на вытягивание локально и выполнить для него слияние с помощью командной строки.
Нельзя выполнить слияние для черновика запроса на вытягивание. Дополнительные сведения о черновиках запросов на вытягивание см. в разделе Сведения о запросах на вытягивание.
Репозиторий можно настроить таким образом, чтобы главная ветвь для запроса на вытягивание автоматически удалялась при его слиянии. Дополнительные сведения см. в разделе Управление автоматическим удалением ветвей.
Примечание. При удалении головной ветви после объединения запроса на вытягивание GitHub проверяет наличие открытых запросов на вытягивание в том же репозитории, где удаленная ветвь указана в качестве базовой ветви. GitHub автоматически обновляет все такие запросы на вытягивание, заменяя базовую ветвь на объединенную базовую ветвь запроса на вытягивание. Дополнительные сведения см. в разделе О ветвях.
Слияние для запросов на вытягивание выполняется с помощью --no-ff
параметра, за исключением запросов на вытягивание со сжатыми или перемещенными фиксациями, для которых выполняется слияние с помощью параметра быстрого переадресации.
Можно связать запрос на вытягивание с проблемой, чтобы показать, что выполняется исправление, а также чтобы автоматически закрыть проблему при слиянии запроса на вытягивание. Дополнительные сведения см. в разделе Связывание запроса на вытягивание с проблемой.
Если вы решили, что для изменений в ветви раздела не должно выполняться слияние с вышестоящей ветвью, можно закрыть запрос на вытягивание без слияния.
Слияние запроса на вытягивание
-
Под именем репозитория щелкните Запросы на вытягивание.
-
В списке "Запросы на вытягивание" щелкните тот, который требуется изменить.
-
В зависимости от параметров слияния, включенных для репозитория, можно:
- Выполнить слияние всех фиксаций в базовую ветвь, щелкнув Выполнить слияние запросов на вытягивание. Если параметр Выполнить слияние запросов на вытягивание не отображается, щелкните раскрывающееся меню слияния и выберите Создание фиксации слияния.
- Сожмите все фиксации в одну, щелкнув раскрывающееся меню слияния и выбрав Слияние со сжатием, а затем нажмите кнопку Слияние со сжатием.
- Переместите фиксации по отдельности в базовую ветвь, щелкнув раскрывающееся меню слияния и выбрав Переместить и выполнить слияние, а затем нажмите кнопку Переместить и выполнить слияние.
Примечание. Перемещение и слияние всегда будут обновлять информацию о зафиксировавшем и создавать новые SHA фиксации. Дополнительную информацию см. в разделе Сведения о слияниях запросов на вытягивание.
- Выполнить слияние всех фиксаций в базовую ветвь, щелкнув Выполнить слияние запросов на вытягивание. Если параметр Выполнить слияние запросов на вытягивание не отображается, щелкните раскрывающееся меню слияния и выберите Создание фиксации слияния.
-
При появлении запроса введите сообщение о фиксации или примите сообщение по умолчанию.
Сведения о сообщениях фиксации по умолчанию для слияний squash см. в разделе Сведения о слиянии запросов на вытягивание.
Примечание: Селектор электронной почты недоступен для слияний, которые не создают фиксацию слияния или для слияний сквош, которые считают пользователя, создавшего запрос на вытягивание, в качестве автора сквошной фиксации.
- Щелкните Подтвердить слияние, Подтвердить слияние со сжатием или Подтвердить перемещение и слияние.
- При необходимости удалите ветвь. Это позволяет сохранить список ветвей в репозитории чистым.
Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.
Чтобы выполнить слияние для запроса на вытягивание, используйте подкоманду gh pr merge
. Замените pull-request
номером, URL-адресом или главной ветвью запроса на вытягивание.
gh pr merge PULL-REQUEST
Следуйте интерактивным указаниям, чтобы завершить слияние. Дополнительные сведения о методах слияния, которые можно выбрать, см. в разделе Сведения о слиянии запросов на вытягивание.
Кроме того, можно использовать флаги для пропуска интерактивных запросов. Например, эта команда сожмет фиксации в одну с сообщением фиксации "моя сжатая фиксация", выполнит слияние для сжатой фиксации в базовую ветвь, а затем удалит локальную и удаленную ветви.
gh pr merge 523 --squash --body "my squash commit" --delete-branch
Дополнительные материалы
- "Отмена запроса на вытягивание"
- Синхронизация ветви с помощью GitHub Desktop
- "Сведения о слиянии запросов на вытягивание"
- "Разрешение конфликтов слияния"