Я хотел бы проверить ранее созданный пул-запрос (созданный через веб-интерфейс GitHub). Я искал и нашел разные места, где refs / pull или refs / pull / pr
Но когда я добавляю fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
в файл git config и делаю git fetch
Что я делаю не так? Должен ли GitHub автоматически создавать файлы pull / xyz или мне нужно что-то настраивать?
git
github
pull-request
git-checkout
GarfieldKlon
источник
источник
Ответы:
Чтобы получить удаленный пиар в вашем локальном репо,
где
ID
id запроса на получение иBRANCHNAME
имя новой ветви, которую вы хотите создать. После того как вы создали ветку, простоСмотрите официальную документацию GitHub для получения дополнительной информации.
источник
git fetch origin pull/1/head:githubusername
, как я ожидалBRANCHNAME
- это то, что вы хотите назвать веткой. Я предполагаю, что вы пытались использовать имя, которое уже существовало (например,master
) и которое не работало, поэтому вы попытались использовать свое имя пользователя, которое сработало, потому что они не были ветвью с этим именем. Возможно, я неправильно понимаю, что вы говорили.origin
чтобы оно указывало на ваш форк иupstream
- на исходный репозиторий (например, следуя help.github.com/articles/configuring-a-remote-for-a-fork ). Обязательно изменитеorigin
значениеupstream
в упомянутой команде, если вы хотите получить запрос на извлечение из исходного репо.Это принесет вам без необходимости называть ветку:
Как получить конкретный запрос на извлечение на моей машине?
источник
Эта суть описывает, что происходит, когда вы делаете git fetch:
У вас есть различные сценарии, перечисленные в выпусках 259, для автоматизации этой задачи.
Проект git-extras предлагает команду
git-pr
(реализовано в PR 262 )git-pr
(1) - проверяет локальный запросисточник
Я предпочитаю получать и извлекать, не создавая локальную ветку и находясь в отключенном состоянии HEAD . Это позволяет мне быстро проверить запрос на загрузку, не загрязняя мою локальную машину ненужными локальными ветвями.
git fetch upstream pull/ID/head && git checkout FETCH_HEAD
где
ID
идентификатор запроса на получение иupstream
где был создан исходный запрос на получение (например, это может бытьorigin
).Я надеюсь, что это помогает.
источник
Ссылаясь на ответ Стивена Пенни, лучше всего создать тестовую ветку и протестировать PR. Так вот, что бы вы сделали.
git checkout -b test
git pull origin pull/939/head:test
Теперь вы можете безопасно проверить изменения в этой локальной тестовой ветви (в данном случае с именем test ) и, как только вы будете удовлетворены, можете как обычно объединить их с GitHub.
источник
test
ветвь и, затем, включил PR - таким образом, мне не нужно восстанавливать ветки локально после завершения; Я просто распоряжаться рабочим деревом. На самом деле я НИКОГДА простоcheckout -b
больше - я всегда создаю рабочее дерево, а затем разветвляюсь. Диск дешевый. Конечно, у меня есть сценарий, который делает это; Я не набираю всю команду, необходимую по отдельности.Если вы используете Github.com, перейдите в раздел «Запросы на извлечение», щелкните соответствующий запрос на извлечение и затем нажмите ссылку «Инструкции для командной строки»:
источник
Вы можете использовать
git config
команду, чтобы написать новое правило.git/config
для извлечения запросов извлечения из хранилища:А потом просто:
источник
Проблема с некоторыми из вышеперечисленных опций заключается в том, что если кто-то выдвигает больше коммитов в PR после открытия PR, он не даст вам самую последнюю версию. Для меня то, что сработало лучше всего - перейти к PR и нажать «Commits», прокрутить до конца, чтобы увидеть самый последний хеш коммита, а затем просто использовать git checkout, т.е.
git checkout <commit number>
в приведенном выше примере
git checkout 0ba1a50
источник
git fetch origin pull/ID/head:BRANCHNAME
подхода, упомянутого в stackoverflow.com/a/30584951/659732 . Спасибо за решение!Я использую Hub, инструмент от GitHub: https://github.com/github/hub
С хабом проверить запрос на локальный доступ довольно просто:
источник
Для Bitbucket вам нужно заменить слово
pull
наpull-requests
.Во-первых, вы можете подтвердить стиль URL-адреса запроса на получение по
git ls-remote origin
команде.Как видите, это
refs/pull-requests/1503/from
вместоrefs/pull/1503/from
Тогда вы можете использовать команды любого из ответов.
источник
Я случайно закончил тем, что написал почти то же самое, что и git-extras. Так что, если вы предпочитаете одну пользовательскую команду вместо установки множества других дополнительных команд, просто поместите этот
git-pr
файл где-нибудь в вашем,$PATH
и тогда вы можете просто написать:источник
Если вы следуете рабочему процессу "github fork", где вы создаете форк и добавляете удаленный репозиторий upstream:
чтобы перетащить в вашу текущую ветку ваша команда будет выглядеть так:
чтобы вытащить в новую ветку код будет выглядеть так:
источник
Github недавно выпустил утилиту cli под названием github-cli . После его установки вы можете оформить ветвь запроса извлечения локально, используя его идентификатор.
например:
gh pr checkout 2267
Обратите внимание, что этот пакет все еще находится в бета-версии
источник
Получите удаленный PR-филиал в локальный филиал:
git fetch origin ‘remote_branch’:‘local_branch_name’
Установите восходящий поток локальной ветки на удаленную ветку.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
Когда вы хотите снова поместить локальные изменения в ветку PR
git push origin HEAD:remote_PR_Branch_name
источник
Предположим, ваше происхождение и информация выше по течению, как показано ниже
и ваша ветка называется
затем
должен делать работу
источник