Jak utworzyć i / lub wysłać żądanie ściągnięcia do innego repozytorium hostowanego na GitHub?
Jak utworzyć i / lub wysłać żądanie ściągnięcia do innego repozytorium hostowanego na GitHub?
Odpowiedzi:
(Oprócz oficjalnej strony „ Pomoc GitHub” Korzystanie z żądań ściągania ”,
zobacz także„ Rozwidlenie kontra rozgałęzienie w GitHub ”,„ Jaka jest różnica między początkiem a początkiem w GitHub ”)
Zakładając, że najpierw rozwidliłeś repozytorium , oto, co powinieneś zrobić w tym posiadaniu:
master
której możesz mieć ochotę gromadzić i mieszać kilka modyfikacji na raz.origin/master
(upewniając się, że łatka nadal działa) zaktualizuje żądanie ściągnięcia automatycznie (nie musisz niczego klikać)git remote prune origin
). GUI GitHub zaproponuje ci usunięcie swojego oddziału na stronie żądania ściągania.Uwaga: aby napisać sam wniosek Pull-Request, zobacz „ Jak napisać idealne żądanie Pull ” (styczeń 2015, GitHub)
Marzec 2016: Nowa opcja przycisku scalania PR: patrz „ Zgadza się squash Github z interfejsu internetowego na żądanie ściągnięcia po komentarzach? ”.
Opiekun repo może wybrać merge --squash
te PR.
Jeśli chodzi o ostatni punkt, od 10 kwietnia 2013 r. „ Przeprojektowany przycisk scalania ” gałąź jest dla ciebie usuwana:
Uproszczono także usuwanie oddziałów po scaleniu.
Zamiast potwierdzać usunięcie dodatkowym krokiem, natychmiast usuwamy gałąź po jej usunięciu i udostępniamy wygodny link do przywrócenia gałęzi w razie potrzeby .
Potwierdza to najlepszą praktykę usuwania oddziału po scaleniu żądania ściągnięcia.
żądanie ściągnięcia nie jest oficjalnym terminem „git”.
Git używa polecenia request-pull
(!) Do zbudowania żądania scalenia:
„podsumowuje zmiany między dwoma zatwierdzeniami standardowego wyjścia i dołącza podany adres URL do wygenerowanego podsumowania”.
Github wprowadza własną wersję od pierwszego dnia (luty 2008 r.) , Ale przeprojektował tę funkcję w maju 2010 r. , Stwierdzając, że:
Pull Request = Compare View + Issues + Commit comments
<humour>
To (żądanie ściągnięcia) nie jest nawet poprawnie zdefiniowane przez GitHub!
Na szczęście prawdziwa organizacja wiadomości biznesowych wiedziałaby o tym, i jest e-notatka, która zastąpi pull-replace przez „e-note” :
Jeśli tak repo O Tory potrzebuje e-note ... zapytać Fox Biznes . Oni wiedzą.
</humour>
branch
Vs. master
decyzja wydaje się być krytyczna dla biorąc moją / odpowiedź GitHub jest z roztworu teoretycznej do czegoś, co można by właściwie wykorzystać.
git pull --rebase upstream/master
jest w porządku.
Aby dowiedzieć się, jak złożyć prośbę o ściągnięcie, po prostu podążyłem za dwiema oddzielnymi stronami pomocy na Github (linkami poniżej) Następujące polecenia wiersza poleceń dotyczą części 1 . Część 2 , rzeczywista prośba ściągnięcia, jest wykonywana całkowicie na stronie internetowej Github.
$ git clone https://github.com/tim-peterson/dwolla-php.git
$ cd dwolla-php
$ git remote add upstream https://github.com/Dwolla/dwolla-php.git
$ git fetch upstream
// make your changes to this newly cloned, local repo
$ git add .
$ git commit -m '1st commit to dwolla'
$ git push origin master
Część 1 : rozwidlaj czyjeś repo: https://help.github.com/articles/fork-a-repo
git clone->cd dwolla-php->git remote->git fetch
powyższą sekwencję, aby sklonować widelec gdzieś w komputerze (tzn. „skopiuj / wklej” go, w tym przypadku third_party TimPeterson$
:) i zsynchronizuj go z master repo (Dwolla / dwolla-php)git add->git commit->git push
powyższą sekwencję, aby przekazać zmiany do zdalnego repozytorium, tj. rozwidlenia na Github (tim-peterson / dwolla-php)Część 2 : złóż wniosek ściągający: https://help.github.com/articles/using-pull-requests
Tims-MacBook-Pro:third_party TimPeterson$
ponieważ jest to tutorial dla początkujących i te monity pomagają zorientować użytkownika.
git fetch upstream
, czy nie musisz scalać wcześniejszych zmian z lokalną kopią, używając git checkout master
wtedy git merge upstream/master
?
Aby złożyć żądanie ściągnięcia, wykonaj następujące czynności:
Zajęło mi to trochę czasu, mam nadzieję, że to komuś pomoże.
Rozpocząłem projekt, aby pomóc ludziom składającym pierwsze żądanie ściągnięcia z GitHub. Możesz zrobić praktyczny samouczek, aby zrobić swój pierwszy PR tutaj
Przepływ pracy jest prosty jak
git clone <clone url you copied earlier>
git checkout -b branch-name
git commit
git push origin branch-name
Compare and pull request
przyciskDla tych z nas, którzy mają konto github.com, ale otrzymują nieprzyjemny komunikat o błędzie, gdy wpisujemy „git” w wierszu polecenia, oto jak to zrobić w przeglądarce :)
Postępowałem zgodnie z instrukcjami Tima Petersona, ale utworzyłem lokalny oddział dla moich zmian. Jednak po wypchnięciu nie widziałem nowego oddziału w GitHub. Rozwiązaniem było dodanie -u do polecenia push:
git push -u origin <branch>
tim-peterson
drugiDwolla
Napisałem program bash, który wykonuje całą pracę związaną z tworzeniem dla ciebie gałęzi PR. Wykonuje rozwidlanie w razie potrzeby, synchronizuje się z nadrzędnym, konfiguruje zdalny nadrzędny itp. I wystarczy zatwierdzić modyfikacje, wcisnąć i przesłać PR.
Oto jak go uruchomić:
github-make-pr-branch ssh your-github-username orig_repo_user orig_repo_name new-feature
Znajdziesz tutaj program , a jego repozytorium zawiera także przewodnik krok po kroku dotyczący ręcznego wykonywania tego samego procesu, jeśli chcesz zrozumieć, jak to działa, a także dodatkowe informacje o tym, jak utrzymać gałąź funkcji na bieżąco - umówić się z głównym mistrzem i innymi przydatnymi ciekawostkami.
Najprostszy GitHub Pull Zapytanie jest za pomocą interfejsu WWW bez użycia git.
Kliknij ikonę ołówka ,
wyszukaj tekst w pobliżu lokalizacji, wprowadź odpowiednie zmiany, a następnie wyświetl ich podgląd, aby potwierdzić. Podaj proponowanej zmianie opis do 50 znaków i opcjonalnie rozszerzony opis, a następnie kliknij przycisk Proponuj zmianę pliku .
Jeśli to czytasz, nie będziesz mieć dostępu do zapisu w repozytorium (folderach projektu), więc GitHub utworzy kopię repozytorium (w rzeczywistości oddziału) na Twoim koncie. Kliknij przycisk Utwórz żądanie ściągnięcia .