2011-12-09 14 views
99

Kiedy otworzę żądanie ściągania na GitHub, wszystkie zatwierdzenia od ostatniego żądania i wszystkie nowe będą automatycznie dodawane do tego żądania. Nie mogę kontrolować, które zatwierdzenia są dodawane, a które nie. Kiedy próbuję otworzyć inne żądanie ściągnięcia, otrzymuję komunikat "Ups! There is a request request". Czy istnieje łatwy sposób otwierania wielu żądań ściągnięcia bez konieczności wprowadzania zmian w linii poleceń?Jak otwierać wiele żądań ściągania na GitHub

Odpowiedz

88

Żądania pobrania są oparte na oddziale. Jedynym sposobem na otwarcie żądania ściągnięcia dla wielu zatwierdzeń jest odizolowanie ich do własnego oddziału i otwarcie z nich żądań pobierania.

+2

Ok ów chłodny, ja myślałem, że to tylko z mistrzem. Więc masz na myśli to, że mogę stworzyć wiele gałęzi (np. Funkcje Git Flow) i tworzyć żądania ściągania dla każdego z nich ... Próbuję! –

+6

Po prostu stwierdziłem, że oddział zachował historię poprzednich zatwierdzeń, więc żądanie wycofania z wyprzedzeniem nadal zawiera wszystkie zatwierdzenia. –

+2

Hi @ eel-gheez, wymyśliłeś, co z tym zrobić? Jak stworzyć pojedyncze PRy bez pokazywania zmian z innych oddziałów? –

2

Właściwie możesz to zrobić bez tworzenia kolejnego oddziału, ale wymaga to trochę zabawy.
Oto kroki:

  1. zidentyfikować dwa popełnienia zakresy chcesz ciągnąć. Oto, czego użyję dla przykładu:
    (inny/master) A -> B -> C -> D -> E (twój/mistrz)
    Powiedzmy, że chcesz wyciągnąć B i C w jednym wniosku i D & E w innym.
  2. Utwórz żądanie wyciągnięcia. Niech lewa strona ("Baza") zostanie zatwierdzona A. Po prawej stronie ("głowa") wpisz numer zatwierdzenia C.
  3. Napisz opis swojej pierwszej prośby.
  4. Złóż kolejną prośbę. Dla bazy wpisz liczbę commit C, a dla głowy wpisz E (yours/master).
  5. Napisz opis.

Jak widzę, żądanie ciągnięcia traktuje zatwierdzenie C jako punkt rozgałęzienia. Lub coś.

+0

Musisz zostawić inne/master jako lewą stronę, nawet jeśli dodajesz numer zatwierdzenia z twojego/master. Również ta metoda nie pozwala na dodawanie nowych zatwierdzeń do żądania scalenia, w przypadku, gdy potrzebne są dalsze zmiany. – frisco

+0

Wysłałem następującą odpowiedź na tę odpowiedź, w przeciwieństwie do niektórych informacji na Github, zobacz http://stackoverflow.com/questions/23159860 –

10

Najprostszym sposobem, jaki znalazłem, jest użycie polecenia hub (https://github.com/defunkt/hub).

ze swojego tematu gałęzi („funkcji” w tym przykładzie), że chcesz utworzyć żądanie ściągania, możesz po prostu uruchomić:

git pull-request 

(należy pamiętać, aby popchnąć pierwszy swój oddział!)

I otworzy nowe żądanie ściągnięcia na GitHub dla "YOUR_USER: feature".

Jeśli masz już problem na GitHub, można nawet dołączyć wniosek ściągania do istniejącego problemu (coś, czego nie może zrobić z interfejsu WWW):

$ git pull-request -i 123 
[ attached pull request to issue #123 ] 
Powiązane problemy