Клон GitHub от запроса на растяжение?
Я хотел бы клонировать репозиторий из GitHub. Проблема в том, что я не хочу основной ветки; Я хочу, чтобы версия в этот неутвержденный запрос на перенос.
Возможно ли, чтобы я клонировал версию запроса на перенос вместо основного репозитория?
Ответы
Ответ 1
Вы можете клонировать нужную ветку с помощью параметра -b
в команде git clone
.
В вашем случае ветка, которую вы хотите клонировать, является ветвью источника запроса на pull (функция/поддержка mongoose):
git clone https://github.com/berstend/frappe.git -b feature/mongoose-support /my_clone
Ответ 2
Самый простой способ сделать это:
git fetch origin pull/2/head
git checkout -b pullrequest FETCH_HEAD
Теперь вы будете в новой ветке, которая находится в состоянии запроса на растяжение.
Ответ 3
git fetch origin refs/pull/PR_NUMBER/head:NEW_LOCAL_BRANCH
например:
$ git fetch origin pull/611/head:pull_611
$ git checkout pull_611
Внести изменения, зафиксировать их, PUSH и открыть новый PR из вилки на GitHub
Ответ 4
Вы можете следовать указаниям этого метода, чтобы иметь возможность напрямую проверить удаленный доступ, не вычисляя их хранилище и ветвь.
Использование примера
Для одного из моих проектов (github3.py) у меня есть следующее в github3.py/.git/config
[remote "github"]
fetch = +refs/heads/*:refs/remotes/github/*
fetch = +refs/pull/*/head:refs/remotes/github/pr/*
url = [email protected]: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
(предположив, что ее еще не существует). Это приятно и означает, что вам не нужно отслеживать удаленные каналы или ветки других людей.
Ответ 5
Когда пользователь отправляет запрос на перенос, они запрашивают, чтобы некоторые изменения были объединены из ветки на их клоне вилки обратно в другой репозиторий пользователя.
Изменения, которые вы хотите получить, можно получить из источника запроса на растяжение. Для этого клонируйте пользовательский репозиторий (git://github.com/berstend/frappe.git
), а затем проверьте ветвь, из которой он создал запрос на растяжение (feature/mongoose-support
).
Ответ 6
После установки 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]
Ответ 7
Этот запрос тяги показывает коммиты от этой вилки человека, поэтому вы можете видеть, что он нажимает свои изменения из ветки feature/mongoose-support
.
Вы можете клонировать его репозиторий и проверить, что ветка
Ответ 8
git clone git://github.com/dweldon/frappe
cd frappe
git pull origin pull/2/head
Как я могу получить несвязанный запрос на получение ветки, которой я не владею?