Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.
В настоящее время GitHub AE находится в ограниченном выпуске.

Локальное получение для изменения запросов на вытягивание

Когда кто-то отправляет запрос на вытягивание из вилки или ветви репозитория, его можно объединить локально, чтобы разрешить конфликт слияния или протестировать и проверить изменения перед слиянием в GitHub AE.

Кто может использовать эту функцию

Anyone with write access to a repository can pull a remote pull request down locally.

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

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

  1. Под именем репозитория щелкните Запросы на вытягивание.

    Снимок экрана: страница main репозитория. На горизонтальной панели навигации вкладка с меткой "Запросы на вытягивание" выделена темно-оранжевым цветом.

  2. В списке запросов на вытягивание выберите тот, который хотите изменить.

  3. В поле слияния щелкните инструкции по командной строке. Выполните последовательность действий, чтобы закрыть предлагаемый запрос на вытягивание.

    Снимок экрана: поле слияния в запросе на вытягивание. Ссылка для доступа к инструкциям по запросу на вытягивание в командной строке выделена темно-оранжевым цветом.

  4. При необходимости, чтобы просмотреть предлагаемые изменения в GitHub Desktop, рядом с кнопкой Объединить запрос на вытягивание нажмите кнопку открыть его в GitHub Desktop.

    Снимок экрана: раздел "сообщения слияния" на странице запроса на вытягивание. Ссылка с меткой "Открыть в GitHub Desktop" выделена оранжевым цветом.

Дополнительные сведения о GitHub CLI см. в разделе Сведения о GitHub CLI.

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

gh pr checkout PULL-REQUEST

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

Если автор запроса на вытягивание не отвечает на запросы или удалил вилку, для запроса на вытягивание по-прежнему можно выполнить слияние. Однако если вы хотите внести изменения в запрос на вытягивание, а автор не отвечает, вам потребуется выполнить некоторые дополнительные действия, чтобы обновить запрос на вытягивание.

После открытия запроса на вытягивание GitHub AE удаленно сохраняет все изменения. Другими словами, фиксации в запросе на вытягивание доступны в репозитории еще до того, как для запроса на вытягивание выполняется слияние. Можно получить открытый запрос на вытягивание и воссоздать его как свой собственный.

Любой пользователь может работать с ранее открытым запросом на вытягивание, чтобы продолжить работу над ним, протестировать его или даже открыть новый запрос на вытягивание с дополнительными изменениями. Однако выполнять слияние для запросов на вытягивание могут только участники совместной работы с доступом на отправку.

  1. Под именем репозитория щелкните Проблемы или Запросы на вытягивание.

    Снимок экрана: страница main репозитория. На горизонтальной панели навигации две вкладки с метками "Проблемы" и "Запросы на вытягивание" выделены темно-оранжевым цветом.

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

  3. Найдите идентификатор неактивного запроса на вытягивание. Это последовательность цифр сразу после заголовка запроса на вытягивание.

    Снимок экрана: заголовок запроса на вытягивание. Идентификатор запроса на вытягивание выделен темно-оранжевым цветом.

  4. Откройте ТерминалТерминалGIT Bash.

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

    $ git fetch origin pull/ID/head:BRANCH_NAME
  6. Перейдите в новую ветвь, основанную на этом запросе на вытягивание:

    [main] $ git checkout BRANCH_NAME
    > Switched to a new branch 'BRANCH_NAME'
  7. На этом этапе можно сделать все, что нужно, с помощью этой ветви. Можно выполнить некоторые локальные тесты или слияние других ветвей в ветвь.

  8. Когда будете готовы, можно отправить новую ветвь вверх:

    [pull-inactive-pull-request] $ git push origin BRANCH_NAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://HOSTNAME/USERNAME/REPOSITORY.git
    >  * [new branch]      BRANCH_NAME -> BRANCH_NAME
  9. Создайте новый запрос на вытягивание с помощью новой ветви.

Ошибка: не удалось отправить некоторые ссылки

Удаленное refs/pull/ пространство имен доступно только для чтения. При попытке отправить туда фиксации вы увидите следующую ошибку:

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

Совет. Когда вы удаляете или переименовываете удаленную ссылку, ваше локальное пространство имен refs/pull/origin/ не будет затронуто вызовами git-remote.