Jak zmodyfikować żądanie ściągnięcia w GitHub, aby zmienić gałąź docelową do scalenia?

117

Mam żądanie ściągnięcia, które żąda scalenia w master z mojej gałęzi, ale właściciel chce, żebym zmienił żądanie scalenia z inną gałęzią z mojej gałęzi.

czy to możliwe? Jakie są możliwe rozwiązania?

Moriarty
źródło

Odpowiedzi:

138

Aktualizacja sierpień 2016: zmiana gałęzi podstawowej żądania ściągnięcia ostatecznie umożliwia zmianę tej gałęzi.
(I to zamyka numer 18 , który miał 3 lata i ponad 1500 komentarzy)

Po utworzeniu żądania ściągnięcia można zmodyfikować gałąź podstawową, aby zmiany w żądaniu ściągnięcia były porównywane z inną gałęzią.

wprowadź opis obrazu tutaj


Oryginalna odpowiedź:

Ponieważ PR nie może być edytowany pod kątem branży (patrz poniżej), najprościej byłoby:

  • utwórz nowy lokalny oddział na szczycie obecnego oddziału
  • pchnij tę nową gałąź
  • stwórz nowy PR z właściwym celem.
  • zamknij poprzedni PR
  • odwołaj się do „starego” żądania ściągnięcia do nowego; na przykład. Supersedes #123(jak skomentował poniżej Rivera )

(oryginalna odpowiedź, ważna tylko przy tworzeniu PR )

Możesz spróbować wybrać inną gałąź podstawową , jak w „ Zmiana zakresu gałęzi i repozytorium docelowego ” (kliknięcie Editprzycisku u góry strony PR)

https://github-images.s3.amazonaws.com/help/pull_requests/pull-request-review-edit-branch.png

Najprostszy sposób myślenia o zakresie branż jest następujący:

  • oddział baza jest gdzie myślisz zmiany powinny być stosowane,
  • gałąź głowy jest to, co chcesz zastosować.

Zmiana podstawowego repozytorium zmienia, kto jest powiadamiany o żądaniu ściągnięcia.
Każdy, kto może przesłać dane do repozytorium podstawowego, otrzyma powiadomienie e-mail i zobaczy nowe żądanie ściągnięcia na swoim pulpicie nawigacyjnym przy następnym logowaniu.

Jeśli jako gałąź podstawową wybierzesz tę, której chce pierwotny opiekun (właściciel), Twój PR powinien połączyć się z gałęzi (niezmieniony) z nową gałęzią podstawową.

VonC
źródło
@Moriarty Nie mam PR w toku, ale jako twórca PR nie widzisz przycisku Edytuj po wysłaniu PR?
VonC,
3
Tak, ale to pozwala mi tylko zmienić nazwę PR. Zakładam, że nie możesz bezpośrednio zmienić scalania PR do gałęzi po przesłaniu. Zastanawiam się, czy istnieje alternatywa (sposób na połączenie PR z inną gałęzią niezależnie).
Moriarty,
2
Jest otwarta prośba o funkcję, aby móc zmienić docelową gałąź PR: github.com/isaacs/github/issues/18
Jason Antman,
1
Dobrym pomysłem jest również odniesienie się do „starego” żądania ściągnięcia z nowego (np. Zastępuje # 123).
Rivera
1
@Shimmy Nie sądzę, nie z internetowego interfejsu GUI.
VonC
6

Jeśli Twój oddział jest (nadal) dostępny zdalnie, nie musisz lokalnie tworzyć nowego oddziału.

  • Wybierz swój oddział (który nosi zmiany, które przesyłasz) bezpośrednio z menu rozwijanego lub pod „# oddziałami” ( https://github.com/account/project/branches ).

  • Kliknij „Nowe żądanie ściągnięcia”. Pozwala to wybrać nową gałąź podstawową (docelową).

Oto zrzut ekranu nowego interfejsu Github: wprowadź opis obrazu tutaj

Mogę złożyć PR oddziału w UXodniesieniu do dowolnego forka / oddziału - nie ma znaczenia, czy wcześniej złożyłem żądanie PR oddziału UX.

mkcor
źródło
1
Zielony przycisk „New pull request” został przeniesiony na stronę internetową z listą PR w prawym górnym rogu.
Golden Thumb
Nie jestem pewien, co masz na myśli, mówiąc „zostało przeniesione”, ale tak, możesz znaleźć zielony przycisk „Nowe żądanie ściągnięcia” w obu miejscach.
mkcor,
4

Możesz teraz: https://github.com/blog/2224-change-the-base-branch-of-a-pull-request

„Możesz teraz zmienić gałąź podstawową otwartego żądania ściągnięcia. Po utworzeniu żądania ściągnięcia możesz zmodyfikować gałąź podstawową, aby zmiany w żądaniu ściągnięcia były porównywane z inną gałęzią. Zmieniając gałąź podstawową oryginalne żądanie ściągnięcia zamiast otwierania nowego z właściwą gałęzią bazową, będziesz w stanie zachować cenną pracę i dyskusję ”.

MK.
źródło
2

Musisz utworzyć nowe żądanie ściągnięcia, jak wspomniano w dokumencie gibhub LINK

  1. Najpierw wybierz New Pull request
  2. po compare pagelewej stronie wybierz, target branchktóry chcesz pchnąć, a po prawej stronie wybierz branch you already pushed.
  3. Zaktualizuj szczegóły nowego PR.
  4. Utwórz plik PR
Ani Thettayil
źródło
-4

To całkiem proste. Po prostu kliknij PR, dla którego chcesz zmienić jego gałąź podstawową. Znajdź przycisk „Zamknij żądanie ściągnięcia” u dołu strony internetowej. Teraz możesz normalnie odtworzyć nowy PR - upewnij się, że tym razem wybrałeś właściwą gałąź podstawową.

Złoty kciuk
źródło
Nie rozumiem, dlaczego jest to odrzucane. To zadziałało dla mnie całkowicie dobrze.
Wilt
3
Nie oddałem głosu. Ale widzę, że ta odpowiedź po prostu powtarza istniejące starsze odpowiedzi (i robi to z mniejszą jakością).
Lars Blumberg,
@LarsBlumberg Jeśli przeczytasz uważnie, powinieneś zauważyć, że nie jest to powtórzenie, nawet jeśli mogą się pokrywać. Dla mnie, jeśli (n -1) kroków, zamiast n kroków, może rozwiązać problem, warto się nim podzielić :-)
Golden Thumb
2
Jeśli (n-1) kroków pomija pomocne kroki, takie jak zamknięcie starego PR i odwołanie się do nowego, nie widzę korzyści w powtarzaniu podzbioru kroków z już istniejącej odpowiedzi. Zwłaszcza, gdy lista mniejszych kroków jest trudniejsza do odczytania z powodu braku odpowiedniego formatowania.
Lars Blumberg