Chciałbym sklonować repozytorium z GitHub. Problem polega na tym, że nie chcę głównej gałęzi; Chcę wersję w this unapproved pull request.Klon GitHub z prośby o ściągnięcie?
Czy mogę sklonować wersję żądania pobrania zamiast głównego repozytorium?
Chciałbym sklonować repozytorium z GitHub. Problem polega na tym, że nie chcę głównej gałęzi; Chcę wersję w this unapproved pull request.Klon GitHub z prośby o ściągnięcie?
Czy mogę sklonować wersję żądania pobrania zamiast głównego repozytorium?
można sklonować oddział chcesz za pomocą opcji w poleceniu git clone
-b
.
W twoim przypadku, oddział chcesz sklonować jest oddział źródłem wniosek końcówką (funkcja/mangusta-support):
git clone https://github.com/berstend/frappe.git -b feature/mongoose-support /my_clone
Dzięki za podarowanie mi słodyczy. Otrzymujesz zielony czek, ale upvotes dla wszystkich, którzy pomogli! – Fresheyeball
Żądanie pobrania pokazuje zatwierdzenia z widelca tej osoby, dzięki czemu widać, że przesuwa on swoje zmiany z oddziału feature/mongoose-support
.
można sklonować repozytorium i jego kasy tę gałąź
Gdy użytkownik składa wniosek ściągania, proszą o jakiś zmiany, które mają zostać scalone z gałęzi na ich klon widelca z powrotem do repozytorium innego użytkownika.
Dostępne zmiany można uzyskać ze źródła żądania wyciągnięcia. Aby to zrobić, sklonuj repozytorium użytkownika (git://github.com/berstend/frappe.git
), a następnie sprawdź gałąź, z której utworzył żądanie ściągnięcia od (feature/mongoose-support
).
+1 za bycie prawym – Fresheyeball
Możesz śledzić instrukcje w this gist, aby móc bezpośrednio sprawdzić pilota, bez konieczności znajdowania jego repozytorium i oddziału.
Przykład użycia
Dla jednego z moich projektów (github3.py) Mam następujących w moim 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
pierwszej jest to, co jest standardem dla każdego zdalnego z tą różnicą, że github
zostaje zastąpione nazwą pilota. Oznacza to, że zdalne głowice (lub szefowie oddziałów na tym serwerze) są "mapowane" do lokalnych pilotów poprzedzonych prefiksem github/
. Więc gdybym zrobił git fetch github
i miał oddział na GitHub, który nie został jeszcze zauważony lokalnie na moim komputerze, to pobrałbym gałąź i mogłem zmienić to tak: git checkout -t github/branch_name
.
Druga linia robi to samo, ale robi to dla żądań ściągania zamiast standardowych gałęzi git. Dlatego widzisz refs/pull/*/head
. Pobiera on nagłówek każdego żądania ściągnięcia na GitHub i odwzorowuje go na github/pr/#
. Tak więc jeśli ktoś wysyła żądanie ciągnącego i jest ponumerowana 62 (na przykład), to zrobić:
git fetch github
git checkout -t github/pr/62
A potem będzie na lokalnym oddziale zwanym pr/62
(zakładając, że nie istnieje). Jest to miłe i oznacza, że nie musisz śledzić pilotów ani oddziałów innych osób.
niezbyt pomocna – Fresheyeball
Dlaczego nie? Wyjaśnia dokładnie, jak to zrobić w wygodny i skuteczny sposób. –
Ponieważ jestem noobem, a ten dokument jest trudny do zrozumienia. Nigdy nie dostałbym od "nie dostania tego" do "git clone https://github.com/berstend/frappe.git -b feature/mangusta-support/my_clone" z głównego dokumentu. – Fresheyeball
Najprostszym sposobem na to jest tak:
git fetch origin pull/2/head
git checkout -b pullrequest FETCH_HEAD
Znajdziesz się na nowy oddział, który jest w stanie wniosek przeciwsobnym.
Lepiej: 'git fetch origin pull/<#>/head:
Często odnosiłem się do tej odpowiedzi na SO, więc utknąłem to w mój plik '.gitconfig' w' [alias] ':' pr = "! f() {git fetch 1 $ pull/2 $/head: pull_ 2 $; git co pull_ $ 2;}; f" '. W ten sposób wpisuję 'git pr upstream 62', a następnie wiem, że jestem w nowej gałęzi PR # 62 z góry! Jeśli zawsze używasz 'origin', możesz go zakodować na twardym dysku zamiast' $ 1', ale to się dla mnie zmieni. –
@matt --- więcej takich na https://gist.github.com/gnarf/5406589 – Chronial
Po zainstalowaniu git-extras
(cd /tmp && git clone --depth 1 https://github.com/tj/git-extras.git && cd git-extras && sudo make install)
można po prostu użyć git pr
$ git pr 62 [remote]
Podoba mi się, git-dodatki to całkiem fajne – Fresheyeball
git fetch origin refs/pull/PR_NUMBER/head:NEW_LOCAL_BRANCH
np
$ git fetch origin pull/611/head:pull_611
$ git checkout pull_611
wprowadzić zmiany, popełnić je wcisnąć i otworzyć nowy PR od twoje za k na GitHub
jak mogę scalić te oddziały lokalnie? Właśnie sklonowałem i pobrałem niezapisaną prośbę o ściągnięcie, jak powyżej. I wypróbowałem nazwę oddziału. Ale żadne zmiany nie pojawiają się w moim IDE/edytorze tekstu. – erginduran
git clone git://github.com/dweldon/frappe
cd frappe
git pull origin pull/2/head
How can I fetch an unmerged pull request for a branch I don't own?
Uwaga 'git pull' tworzy scalenie w bieżącej gałęzi; zazwyczaj dla PR-a, który chciałbyś po prostu "git fetch" uzyskać oryginalny kod autora (jest wtedy dostępny jako FETCH_HEAD). Jeśli chcesz scalić, warto również wspomnieć o 'pull/2/merge' (zamiast' pull/2/head') - to sprawia, że GitHub daje ci dokładne zatwierdzenie scalenia, które by się stało, gdybyś kliknął przycisk [Merge] . –
Jeśli tu nie przyszedł do 'clone' ale dla' fetch' patrz: http://stackoverflow.com/questions/6743514/git-how-can-i- Fetch-an-unmerged-pull-request-for-a-branch-i-dont-own –
Przyszedłem tu po klon. W każdym razie dzięki. – Fresheyeball