Сведения о слиянии запросов на вытягивание
В запросе на вытягивание предлагается выполнить слияние изменений, внесенных в главную ветвь, в базовую. По умолчанию для любого запроса на вытягивание можно выполнить слияние в любое время, если главная ветвь не конфликтует с базовой. Однако при слиянии запроса на вытягивание в определенную ветвь могут быть ограничения. Например, можно выполнить слияние запроса на вытягивание только в ветвь по умолчанию, если проходят необходимые проверки состояния. Администраторы репозитория могут добавлять такие ограничения в ветви с помощью правил защиты ветви. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.
В качестве альтернативы правилам защиты ветви, можно создавать наборы правил. Наборы правил имеют несколько преимуществ по сравнению с правилами защиты branch защиты, такими как состояния и улучшенная возможность обнаружения, не требуя доступа администратора. Вы также можете применять несколько наборов правил одновременно. Дополнительные сведения см. в разделе Сведения о наборе правил.
Вы можете настроить запрос на вытягивание для автоматического объединения при соблюдении всех требований к объединению. Дополнительные сведения см. в разделе Автоматическое слияние запроса на вытягивание.
Если в запросе на вытягивание есть конфликты слияния или если вы хотите протестировать изменения перед слиянием, можно проверить запрос на вытягивание локально и выполнить для него слияние с помощью командной строки.
Нельзя выполнить слияние для черновика запроса на вытягивание. Дополнительные сведения о черновике запросов на вытягивание см. в разделе "Сведения о запросах на вытягивание".
Репозиторий можно настроить таким образом, чтобы главная ветвь для запроса на вытягивание автоматически удалялась при его слиянии. Дополнительные сведения см. в разделе Управление автоматическим удалением ветвей.
Note
При удалении головной ветви после объединения запроса на вытягивание GitHub проверяет наличие открытых запросов на вытягивание в том же репозитории, где удаленная ветвь указана в качестве базовой ветви. GitHub автоматически обновляет все такие запросы на вытягивание, заменяя базовую ветвь на объединенную базовую ветвь запроса на вытягивание. Дополнительные сведения см. в разделе "О ветвях".
Слияние для запросов на вытягивание выполняется с помощью --no-ff
параметра, за исключением запросов на вытягивание со сжатыми или перемещенными фиксациями, для которых выполняется слияние с помощью параметра быстрого переадресации.
Можно связать запрос на вытягивание с проблемой, чтобы показать, что выполняется исправление, а также чтобы автоматически закрыть проблему при слиянии запроса на вытягивание. Дополнительные сведения см. в разделе Связывание запроса на вытягивание с проблемой.
Если вы решили, что для изменений в ветви раздела не должно выполняться слияние с вышестоящей ветвью, можно закрыть запрос на вытягивание без слияния.
Слияние запроса на вытягивание
-
В поле имени репозитория щелкните Запросы на вытягивание.
-
В списке "Запросы на вытягивание" щелкните тот, который требуется изменить.
-
Прокрутите вниз до нижней части запроса на вытягивание. В зависимости от параметров слияния, включенных для репозитория, можно:
-
Выполнить слияние всех фиксаций в базовую ветвь, щелкнув Выполнить слияние запросов на вытягивание. Если параметр запроса на вытягивание слиянием не отображается, щелкните раскрывающееся меню слияния и нажмите кнопку "Создать фиксацию слияния".
-
Сквашировать фиксации в одну фиксацию , щелкнув раскрывающееся меню слияния, выбрав Squash и слияние , а затем щелкните Squash и слияние.
-
Перебазируйте фиксации по отдельности на базовая ветвь, щелкнув раскрывающееся меню слияния, выбрав "Перебазировать" и "Объединить", а затем щелкните "Перебаза" и "Объединить".
Note
Повторная база и слияние всегда обновляют сведения о фиксации и создают новые shas фиксации. Дополнительную информацию см. в статье Сведения о слияниях запросов на вытягивание.
-
-
При появлении запроса введите сообщение о фиксации или примите сообщение по умолчанию.
Сведения о сообщениях фиксации по умолчанию для слияний скваша см. в разделе "Сведения о слиянии запросов на вытягивание".
-
Если у вас несколько адресов электронной почты, связанных с учетной записью в GitHub, щелкните раскрывающееся меню адреса электронной почты и выберите адрес электронной почты, используемый в качестве адреса электронной почты автора Git. В этом раскрывающемся меню отображаются только проверенные адреса электронной почты. Если вы включили конфиденциальность адресов электронной почты, то ответ не будет по умолчанию автор фиксации адреса электронной почты. Дополнительные сведения о точной форме, которую может принимать адрес электронной почты без ответа, см. в разделе "Указание адреса электронной почты для фиксаций".
Note
Селектор электронной почты недоступен для слияний повторной базы данных, которые не создают фиксацию слияния. Для слияний скваш средство выбора электронной почты отображается только в том случае, если вы являетесь автором запроса на вытягивание и имеете несколько адресов электронной почты, связанных с вашей учетной записью.
-
Щелкните Подтвердить слияние, Подтвердить слияние со сжатием или Подтвердить перемещение и слияние.
-
При необходимости удалите ветвь. Это позволяет сохранить список ветвей в репозитории чистым.
Дополнительные сведения о 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
Дополнительные материалы
- "Отмена запроса на вытягивание"
- AutoTITLE с помощью GitHub Desktop
- "Сведения о слиянии запросов на вытягивание"
- "Разрешение конфликтов слияния"