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

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

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

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

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

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

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

  1. Под именем репозитория щелкните Запросы на вытягивание. Выбор вкладки "Запрос на вытягивание"
  2. В списке запросов на вытягивание выберите тот, который хотите изменить.
  3. В поле слияния щелкните инструкции по командной строке. Выполните последовательность действий, чтобы закрыть предлагаемый запрос на вытягивание. Ссылка для доступа к инструкциям по запросу на вытягивание из командной строки
  4. При необходимости, чтобы просмотреть предлагаемые изменения в GitHub Desktop, щелкните открыть это в GitHub Desktop . Ссылка для локального открытия запроса на вытягивание на рабочем столе

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

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

gh pr checkout PULL-REQUEST

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

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

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

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

  1. Под именем репозитория щелкните Проблемы или Запросы на вытягивание. Выбор вкладки "Проблемы и запросы на вытягивание"
  2. В списке "Запросы на вытягивание" щелкните тот, который требуется изменить.
  3. Найдите идентификатор неактивного запроса на вытягивание. Это последовательность цифр сразу после заголовка запроса на вытягивание. Номер идентификатора запросов на вытягивание 1. Откройте ТерминалТерминалGIT Bash.
  4. Получите ссылку на запрос на вытягивание по его номеру идентификатора, создав в процессе новую ветвь.
    $ git fetch origin pull/ID/head:BRANCH_NAME
  5. Перейдите в новую ветвь, основанную на этом запросе на вытягивание:
    [main] $ git checkout BRANCH_NAME
    > Switched to a new branch 'BRANCH_NAME'
  6. На этом этапе можно сделать все, что нужно, с помощью этой ветви. Можно выполнить некоторые локальные тесты или слияние других ветвей в ветвь.
  7. Когда будете готовы, можно отправить новую ветвь вверх:
    [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
  8. Создайте новый запрос на вытягивание с помощью новой ветви.

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

Удаленное 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.