Chciałbym sprawdzić wcześniej utworzone żądanie ściągnięcia (utworzone przez interfejs sieciowy GitHub). Szukałem i znalazłem różne miejsca, w których refs / pull lub refs / pull / pr
Ale kiedy dodaję fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
do pliku konfiguracyjnego git i wykonuję pobieranie git
Co robię źle? Czy GitHub powinien automatycznie tworzyć rzeczy typu pull / xyz, czy też muszę coś skonfigurować?
git
github
pull-request
git-checkout
GarfieldKlon
źródło
źródło
Odpowiedzi:
Aby pobrać zdalny PR do lokalnego repozytorium,
gdzie
ID
jest identyfikatorem żądania ściągnięcia iBRANCHNAME
jest nazwą nowego oddziału, który chcesz utworzyć. Po utworzeniu oddziału, po prostuWięcej informacji znajduje się w oficjalnej dokumentacji GitHub .
źródło
git fetch origin pull/1/head:githubusername
, jak się spodziewałemBRANCHNAME
jest tym, co chcesz nazwać oddział. Zgaduję, że próbowałeś użyć nazwy, która już istniała (np.master
) I która nie działała, więc próbowałeś swojej nazwy użytkownika, która zadziałała, ponieważ nie była to gałąź o tej nazwie. Być może źle zrozumiałem, co mówiłeś.origin
wskazujący na widelec iupstream
- na oryginalne repozytorium ( na przykład help.github.com/articles/configuring-a-remote-for-a-fork ). Pamiętaj, aby zmienićorigin
naupstream
we wspomnianym poleceniu, jeśli chcesz pobrać żądanie ściągnięcia z oryginalnego repozytorium.Spowoduje to pobranie bez konieczności podawania nazwy oddziału:
Jak uzyskać określone żądanie ściągnięcia na moim komputerze?
źródło
Ten opis opisuje, co się stanie, gdy wykonasz pobranie git:
Masz różne skrypty wymienione w numerach 259, aby zautomatyzować to zadanie.
Projekt git-extras proponuje polecenie
git-pr
(zaimplementowane w PR 262 )git-pr
(1) - Sprawdza żądanie ściągania lokalnieźródło
Wolę pobierać i kasować bez tworzenia lokalnego oddziału i być w stanie odłączonym HEAD . Pozwala mi to szybko sprawdzić żądanie ściągnięcia bez zanieczyszczania mojej lokalnej maszyny niepotrzebnymi lokalnymi oddziałami.
git fetch upstream pull/ID/head && git checkout FETCH_HEAD
gdzie
ID
jest identyfikator żądania ściągnięcia iupstream
gdzie jest utworzone oryginalne żądanie ściągnięcia (może to byćorigin
na przykład).Mam nadzieję, że to pomoże.
źródło
Odwołując się do odpowiedzi Stevena Penny'ego, najlepiej utworzyć gałąź testową i przetestować PR. Oto co byś zrobił.
git checkout -b test
git pull origin pull/939/head:test
Teraz możesz bezpiecznie przetestować zmiany w tym lokalnym oddziale testowym (w tym przypadku o nazwie test ), a gdy będziesz zadowolony, możesz połączyć go jak zwykle z GitHub.
źródło
test
gałąź i NASTĘPNIE włączyłem PR - w ten sposób nie muszę przywracać gałęzi lokalnie po zakończeniu; Po prostu pozbywam się stołu roboczego. W rzeczywistości NIGDYcheckout -b
już nie jestem - zawsze tworzę drzewo robocze, a następnie rozgałęziam się. Dysk jest tani. Oczywiście mam skrypt, który to robi; Nie wpisuję wszystkich potrzebnych poleceń indywidualnie.Jeśli korzystasz z Github.com, przejdź do „Żądań ściągania”, kliknij odpowiednie żądanie ściągania, a następnie kliknij link „instrukcje wiersza poleceń”:
źródło
Możesz użyć
git config
polecenia, aby napisać nową regułę w.git/config
celu pobrania żądań ściągnięcia z repozytorium:A potem tylko:
źródło
Problem z niektórymi z powyższych opcji polega na tym, że jeśli ktoś popchnie więcej PR do PR po otwarciu PR, nie dostarczy Ci najbardziej zaktualizowanej wersji. Dla mnie to, co zadziałało najlepiej - przejdź do PR i naciśnij „Zatwierdzenia”, przewiń w dół, aby zobaczyć najnowszy skrót zatwierdzenia, a następnie po prostu użyj kasy
git checkout <commit number>
w powyższym przykładzie
git checkout 0ba1a50
źródło
git fetch origin pull/ID/head:BRANCHNAME
podejściem wymienionym w stackoverflow.com/a/30584951/659732 . Dzięki za rozwiązanie!Używam hub, narzędzia z github: https://github.com/github/hub
Dzięki hubowi lokalne sprawdzenie żądania ściągnięcia jest dość łatwe:
źródło
W przypadku Bitbucket musisz zamienić słowo
pull
napull-requests
.Po pierwsze, możesz potwierdzić styl adresu URL żądania ściągnięcia za pomocą
git ls-remote origin
polecenia.Jak widać, jest to
refs/pull-requests/1503/from
zamiastrefs/pull/1503/from
Następnie możesz użyć poleceń dowolnej z odpowiedzi.
źródło
Przypadkowo skończyło się na tym, że pisałem prawie tak samo, jak w przypadku git-dodatków. Więc jeśli wolisz jedno niestandardowe polecenie zamiast instalować kilka innych dodatkowych poleceń, po prostu umieść ten
git-pr
plik gdzieś w swoim,$PATH
a następnie możesz po prostu napisać:źródło
Jeśli postępujesz zgodnie z obiegiem pracy „github fork”, w którym tworzysz widelec i dodajesz zdalne repozytorium upstream:
aby wejść do twojej aktualnej gałęzi, twoje polecenie wyglądałoby następująco:
aby pobrać do nowej gałęzi kod wyglądałby następująco:
źródło
Github wydał niedawno narzędzie cli o nazwie github-cli . Po jego zainstalowaniu możesz sprawdzić lokalnie gałąź żądania ściągnięcia, używając jej identyfikatora
na przykład:
gh pr checkout 2267
Pamiętaj, że ten pakiet jest wciąż w fazie beta
źródło
Przenieś zdalny oddział PR do oddziału lokalnego:
git fetch origin ‘remote_branch’:‘local_branch_name’
Ustaw upstream oddziału lokalnego na oddział zdalny.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
Gdy chcesz ponownie przekazać zmiany lokalne do gałęzi PR
git push origin HEAD:remote_PR_Branch_name
źródło
Załóżmy, że twoje pochodzenie i informacje o wysyłaniu są jak poniżej
a nazwa twojego oddziału jest podobna
następnie
wykona robotę
źródło
Jeśli ich zatwierdzenia znajdują się w gałęzi głównej ich rozwidlonego repozytorium, możesz wykonać następujące czynności.
źródło