Как вытащить запрос на извлечение из апстрима в github

Я разветвил репо на github. Есть несколько новых пулл-реквестов в Upstream. Я хочу получить запрос на извлечение из восходящего потока локально.

Как я могу это сделать? Я понятия не имею и не нашел ничего связанного с этим.


person Noor A Shuvo    schedule 04.01.2019    source источник
comment
Возможный дубликат Как быстро получить запрос на вытягивание локально   -  person phd    schedule 04.01.2019
comment
stackoverflow.com/search?q=%5Bgithub%5D+pull+request+locally   -  person phd    schedule 04.01.2019


Ответы (5)


Вы должны быть в состоянии сделать это, сначала добавив восходящий поток как удаленный, а затем вытащив запрос на извлечение:

git remote add upstream https://github.com/USER/repository.git
git pull upstream pull/ID/head:BRANCHNAME
git checkout BRANCHNAME

Где USER — это не ваше имя пользователя, а исходное (от которого вы разветвились), ID — это идентификатор запроса на включение, а BRANCHNAME — имя локальной ветки, соответствующей запросу на вытягивание.

Если вы хотите позже перейти к своей собственной вилке, вам, вероятно, придется установить восходящий поток (из BRANCHNAME):

git push -u origin BRANCHNAME
person Holt    schedule 04.01.2019

См. https://help.github.com/articles/checking-out-pull-requests-locally/:

git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME

где ID — номер запроса на включение, а BRANCHNAME — произвольное имя новой локальной ветки.

person Anders Kaseorg    schedule 04.01.2019

GitHub API поддерживает слияние запроса запрос на сервер с помощью запроса PUT. Таким образом, вы можете выполнить PUT локально и объединить запрос на извлечение.

Но обратите внимание, что это просто означает, что на сервере произошло слияние. Если бы вы были в какой-то ветке, скажем, master, и вы удаленно инициировали запрос на извлечение, если бы вы хотели получить последний контент, вам все равно пришлось бы выполнять извлечение:

git pull origin master
person Tim Biegeleisen    schedule 04.01.2019

Запрос на вытягивание — это не функция git, это рабочий процесс, и поэтому его необходимо соблюдать, если есть необходимость в репликации. Так что единственный способ - сделать то же самое локально.

git checkout featureA # as it has to be on origin
git checkout master/develop
git merge featureA

На данный момент вы находитесь в состоянии как запрос на вытягивание.

person Croolman    schedule 04.01.2019

Попробуй это - сделай

git pull

чтобы убедиться, что у вас есть последние изменения в master, затем, находясь в ветке master, выполните

git checkout <branch name >

к желаемому, имеющему PR(pull request) и, наконец, сделать

git pull

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

person Evans Gacheru    schedule 04.01.2019