# Слияние запроса на вытягивание

Слияние запросов на вытягивание в вышестоящей ветви, выбор методов слияния и соответствие требованиям репозитория, таким как проверки или проверки состояния.

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

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

Перед слиянием правил репозитория или защиты ветви могут потребоваться проверки, проверки состояния или up-to-date branch. См [. раздел AUTOTITLE](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches).

В качестве альтернативы правилам защиты ветвей можно создавать наборы правил. Наборы правил имеют несколько преимуществ по сравнению с правилами защиты ветвей, например, статусы, а также лучшая обнаружимость без необходимости доступа администратора. Вы также можете применять несколько наборов правил одновременно. Дополнительные сведения см. в разделе [Сведения о наборе правил](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets).

Вы можете настроить запрос на вытягивание для автоматического объединения при соблюдении всех требований к объединению. Дополнительные сведения см. в разделе [Автоматическое слияние запроса на вытягивание](/ru/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/automatically-merging-a-pull-request).

Если для базовой ветви требуется очередь слияния, доступные параметры слияния отличаются от описанных здесь. См [. раздел AUTOTITLE](/ru/pull-requests/how-tos/merge-and-close-pull-requests/merging-a-pull-request-with-a-merge-queue).

Если запрос на вытягивание имеет конфликты слияния или сначала протестировать изменения, [ознакомьтесь с запросом на вытягивание локально](/ru/pull-requests/how-tos/review-pull-requests/checking-out-pull-requests-locally).

Репозиторий может автоматически удалить головную ветвь после объединения. См [. раздел AUTOTITLE](/ru/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-the-automatic-deletion-of-branches).

> \[!NOTE]
> При удалении головной ветви после объединения запроса на вытягивание GitHub проверяет наличие открытых запросов на вытягивание в том же репозитории, где удаленная ветвь указана в качестве базовой ветви. GitHub автоматически обновляет все такие запросы на вытягивание, заменяя базовую ветвь на объединенную базовую ветвь запроса на вытягивание.

Запросы на вытягивание используют [`--no-ff` параметр](https://git-scm.com/docs/git-merge#_fast_forward_merge), кроме сквашированных или перебазированных запросов на вытягивание, которые используют быстрое слияние.

Вы можете привязать pull request к проблеме, чтобы показать, что исправление уже в процессе, и автоматически закрыть проблему при слиянии pull-запроса. Дополнительные сведения см. в разделе [Связывание запроса на вытягивание с проблемой](/ru/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue).

Если вы не хотите объединить изменения, можно [закрыть запрос на вытягивание](/ru/pull-requests/how-tos/merge-and-close-pull-requests/closing-a-pull-request).

## Слияние запроса на вытягивание

<div class="ghd-tool webui">

1. В поле имени репозитория щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-pull-request" aria-label="git-pull-request" role="img"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg> Запросы** на вытягивание.

   ![Снимок экрана: главная страница репозитория. На горизонтальной панели навигации вкладка с меткой "Запросы на вытягивание" выделена темно-оранжевым цветом.](/assets/images/help/repository/repo-tabs-pull-requests-global-nav-update.png)

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

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

   * [Объедините все фиксации в базовую ветвь](/ru/pull-requests/reference/pull-request-merges) , щелкнув **запрос на вытягивание слиянием**. Если этот параметр не отображается, щелкните раскрывающееся меню слияния и нажмите **кнопку "Создать фиксацию слияния**".

     ![Снимок экрана: параметры слияния для запроса на вытягивание. Стрелка для развертывания раскрывающегося списка выделена темно-оранжевым цветом.](/assets/images/help/pull_requests/merge-pull-request-options.png)

   * [Сквашировать фиксации в одну фиксацию](/ru/pull-requests/reference/pull-request-merges#squash-and-merge-your-commits) , щелкнув раскрывающееся меню слияния, выбрав **Squash и слияние**, а затем щелкните **Squash и слияние**.

   * [Перебазируйте фиксации отдельно на базовую ветвь](/ru/pull-requests/reference/pull-request-merges#rebase-and-merge-your-commits) , щелкнув раскрывающееся меню слияния, выбрав **"Перебазировать" и "Объединить**", а затем щелкните **"Перебазировать" и "Объединить**".

   > \[!NOTE]
   > Повторная база и слияние всегда обновляют сведения о фиксации и создают новые shas фиксации. См [. сведения о слиянии запросов на вытягивание](/ru/pull-requests/reference/pull-request-merges#rebase-and-merge-your-commits).

4. При появлении запроса введите сообщение о фиксации или примите сообщение по умолчанию.

   Сведения о сообщениях фиксации по умолчанию для слияний сквош см. в разделе [Слияние запросов на вытягивание](/ru/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/about-pull-request-merges#merge-message-for-a-squash-merge).

5. Если у вас несколько адресов электронной почты, связанных с учетной записью GitHub, щелкните раскрывающееся меню адреса электронной почты и выберите адрес электронной почты для использования в качестве адреса электронной почты автора Git. В этом раскрывающемся меню отображаются только проверенные адреса электронной почты. Если вы включили конфиденциальность адресов электронной почты, то ответ не будет по умолчанию автор фиксации адреса электронной почты. Дополнительные сведения о точной форме, которую может принимать адрес электронной почты без ответа, см. в разделе [Указание адреса электронной почты для фиксаций](/ru/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address).

![Снимок экрана: запрос на извлечение GitHub с раскрывающимся меню с параметрами выбора адреса электронной почты автор фиксации.
octocat@github.com выбран.](/assets/images/help/repository/choose-commit-email-address.png)

> \[!NOTE]
> Селектор электронной почты недоступен для слияний повторной базы данных, которые не создают фиксацию слияния. Для слияний скваш селектор электронной почты отображается только в том случае, если вы являетесь автором запроса на вытягивание и имеете несколько адресов электронной почты, связанных с вашей учетной записью.

1. Щелкните **Подтвердить слияние**, **Подтвердить слияние со сжатием** или **Подтвердить перемещение и слияние**.
2. При необходимости [удалите ветвь](/ru/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/deleting-and-restoring-branches-in-a-pull-request). Это позволяет сохранить список ветвей в репозитории чистым.

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> Дополнительные сведения о GitHub CLIсм. в разделе [О GitHub CLI](/ru/github-cli/github-cli/about-github-cli).

Чтобы выполнить слияние для запроса на вытягивание, используйте подкоманду `gh pr merge`. Замените `pull-request` номером, URL-адресом или главной ветвью запроса на вытягивание.

```shell
gh pr merge PULL-REQUEST
```

Следуйте интерактивным указаниям, чтобы завершить слияние. См [. раздел AUTOTITLE](/ru/pull-requests/reference/pull-request-merges).

Кроме того, можно использовать флаги для пропуска интерактивных запросов. Например, эта команда сквасит фиксации в одну фиксацию с сообщением фиксации "моя фиксация squash", объединяет сквашированную фиксацию в базовую ветвь, а затем удаляет локальную и удаленную ветвь.

```shell
gh pr merge 523 --squash --body "my squash commit" --delete-branch
```

</div>

## Дополнительные материалы

* [Отмена запроса на вытягивание](/ru/pull-requests/how-tos/merge-and-close-pull-requests/reverting-a-pull-request)
* [Синхронизация ветви в GitHub Desktop](/ru/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/syncing-your-branch-in-github-desktop) с помощью GitHub Desktop
* [Слияние запросов на вытягивание](/ru/pull-requests/reference/pull-request-merges)
* [Слияние и закрытие запросов на вытягивание](/ru/pull-requests/how-tos/merge-and-close-pull-requests)