Клон GitHub из запроса pull?
Я хотел бы клонировать репозиторий из GitHub. Проблема в том, что я не хочу основную ветку; я хочу версию в этот несанкционированный запрос на вытягивание.
можно ли мне клонировать версию запроса pull вместо основного репозитория?
8 ответов:
вы можете клонировать ветку, которую вы хотите с помощью на .
в вашем случае ветвь, которую вы хотите клонировать, является исходной ветвью запроса pull (feature/mongoose-support):
git clone https://github.com/berstend/frappe.git -b feature/mongoose-support /my_clone
самый простой способ сделать это, как это:
git fetch origin pull/2/head git checkout -b pullrequest FETCH_HEADтеперь вы будете на новой ветке, которая находится в состоянии запроса на вытягивание.
git fetch origin refs/pull/PR_NUMBER/head:NEW_LOCAL_BRANCHнапример:
$ git fetch origin pull/611/head:pull_611 $ git checkout pull_611внесите изменения, зафиксируйте их, Нажмите и откройте новый PR из своей вилки на GitHub
вы можете следовать указаниям в в этом суть чтобы иметь возможность проверить пульт напрямую, не выясняя их репозиторий и ветку.
пример использования
для одного из моих проектов (github3.py) у меня есть следующее в моем
github3.py/.git/config[remote "github"] fetch = +refs/heads/*:refs/remotes/github/* fetch = +refs/pull/*/head:refs/remotes/github/pr/* url = git@github.com:sigmavirus24/github3.pyпервая строка-это то, что является стандартным для каждого удаленного за исключением того, что
githubзаменяется именем пульта дистанционного управления. Это означает, что удаленный главы (или главы филиалов на этом сервере)" сопоставляются " с локальными пультами дистанционного управления с префиксомgithub/. Так что если бы я сделалgit fetch githubи имел ветку на GitHub, которая еще не была замечена локально на моей машине, она загрузила бы ветку, и я мог бы переключиться на нее так:git checkout -t github/branch_name.вторая строка делает то же самое, но она делает это для запросов pull вместо стандартных ветвей git. Вот почему вы видите
refs/pull/*/head. Он извлекает голову каждого запроса на вытягивание на GitHub и сопоставляет его сgithub/pr/#. Поэтому, если кто-то отправляет запрос на вытягивание, и он пронумерован 62 (например), вы бы сделали:git fetch github git checkout -t github/pr/62и тогда вы будете на местном филиале под названием
pr/62(предполагая, что он уже не существует). Это приятно и означает, что вам не нужно следить за чужими пультами или филиалами.
когда пользователь отправляет запрос на вытягивание, они просят, чтобы некоторые изменения были объединены из ветви на их клоне вилки обратно в репозиторий другого пользователя.
изменения, которые вы хотите, могут быть получены из источника запроса на вытягивание. Для этого необходимо клонировать репозиторий пользователя (
git://github.com/berstend/frappe.git), а затем проверить ветку он создал запрос от (feature/mongoose-support).
после установки git-extras
(cd /tmp && git clone --depth 1 https://github.com/tj/git-extras.git && cd git-extras && sudo make install)вы можете просто использовать
git pr$ git pr 62 [remote]
этот запрос на вытягивание показывает коммиты из вилки этого человека, поэтому вы можете видеть, что он нажимает свои изменения из
feature/mongoose-supportфилиала.вы можете клонировать его репозиторий и проверить эту ветку
git clone git://github.com/dweldon/frappe cd frappe git pull origin pull/2/headКак я могу получить несвязанный запрос на вытягивание для ветви, которой я не владею?