Клон 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
Как я могу получить несвязанный запрос на вытягивание для ветви, которой я не владею?