Я разветвил репо на github. Есть несколько новых пулл-реквестов в Upstream
. Я хочу получить запрос на извлечение из восходящего потока локально.
Как я могу это сделать? Я понятия не имею и не нашел ничего связанного с этим.
Я разветвил репо на github. Есть несколько новых пулл-реквестов в Upstream
. Я хочу получить запрос на извлечение из восходящего потока локально.
Как я могу это сделать? Я понятия не имею и не нашел ничего связанного с этим.
Вы должны быть в состоянии сделать это, сначала добавив восходящий поток как удаленный, а затем вытащив запрос на извлечение:
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
См. https://help.github.com/articles/checking-out-pull-requests-locally/:
git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME
где ID
— номер запроса на включение, а BRANCHNAME
— произвольное имя новой локальной ветки.
GitHub API поддерживает слияние запроса запрос на сервер с помощью запроса PUT. Таким образом, вы можете выполнить PUT локально и объединить запрос на извлечение.
Но обратите внимание, что это просто означает, что на сервере произошло слияние. Если бы вы были в какой-то ветке, скажем, master
, и вы удаленно инициировали запрос на извлечение, если бы вы хотели получить последний контент, вам все равно пришлось бы выполнять извлечение:
git pull origin master
Запрос на вытягивание — это не функция git, это рабочий процесс, и поэтому его необходимо соблюдать, если есть необходимость в репликации. Так что единственный способ - сделать то же самое локально.
git checkout featureA # as it has to be on origin
git checkout master/develop
git merge featureA
На данный момент вы находитесь в состоянии как запрос на вытягивание.
Попробуй это - сделай
git pull
чтобы убедиться, что у вас есть последние изменения в master, затем, находясь в ветке master, выполните
git checkout <branch name >
к желаемому, имеющему PR(pull request) и, наконец, сделать
git pull
пока на той ветке. Я считаю, что он должен получить текущее состояние ветви, у которой есть запрос на вытягивание.