Do mojego repozytorium hostowanego na Githubie przychodzi żądanie ściągnięcia. Domyślnie jest scalany do master
gałęzi.
Czy jest jakiś sposób, abym mógł zmienić gałąź, w której zmiany zostaną scalone?
git
github
pull-request
eoinoc
źródło
źródło
Przesyłający może to zmienić, gdy wyda żądanie ściągnięcia, ale po wydaniu nie można tego zmienić.
Z drugiej strony możesz ręcznie scalić ich gałąź i wypychać, co robię półregularnie w przypadku błędnie ukierunkowanych żądań ściągnięcia.
hub
Klejnot może być pomocny w pracy z komponentami żądania ściągnięcia.Ten klejnot zamyka proces ręczny, którym jest:
git checkout ${target_branch} && git merge ${remote}/${branch}
git push origin ...
źródło
git merge --no-ff ...
jak wspomina @GuillermoMansilla w swojej odpowiedzi.Alternatywą dla korzystania z klejnotu centrum wspomnianego w innych odpowiedziach jest użycie wiersza poleceń do lokalnego scalenia żądań ściągnięcia , co pozwala na:
Powyższe polecenia działają bezpośrednio tylko wtedy, gdy najpierw dodasz następujący wiersz do
.git/config
pliku:Umożliwia to pobranie WSZYSTKICH żądań ściągnięcia. Ponieważ może to nie być pożądane w przypadku dużych repozytoriów, GitHub zmodyfikował instrukcje tak, aby zawierały
git fetch origin pull/ID/head:BRANCHNAME
składnię, co pozwala uniknąć modyfikacji pliku konfiguracyjnego i pobiera tylko to pojedyncze żądanie ściągnięcia.źródło
Chociaż nie możesz zmienić istniejącego żądania ściągnięcia, ponieważ nie jest ono twoje, możesz łatwo utworzyć nowe, jeśli powiązane repozytorium źródłowe nadal istnieje - tak, nawet jeśli należy do kogoś innego.
Przejdź do repozytorium przesyłającego, a następnie utwórz nowe żądanie ściągnięcia w jego / jej repozytorium, używając tych samych zatwierdzeń, ale upewnij się, że poprawnie ustawiłeś właściwą gałąź docelową.
Następnie wróć do własnego repozytorium i zaakceptuj nowe żądanie ściągnięcia. Voila!
źródło
Nie ma nic złego w rozwiązaniu Daniela Pittmana, jednak te połączenia potraktowałbym jako „brak szybkiego przewijania do przodu”, czyli zmiana kroku numer 3 na:
Używając
--no-ff
, historia będzie łatwiejsza do odczytania. Wyraźnie powie, że$n
pochodzą z zatwierdzeń$branch
, a także ułatwi ci życie, jeśli będziesz musiał cofnąć coś, co zostało zrobione w tej gałęzi.Aby również odpowiedzieć na pytanie eoinoc i udzielić dodatkowej wskazówki:
Po wykonaniu scalenia git cli poprosi Cię o napisanie wiadomości, generalnie pojawi się ogólna wiadomość o treści podobnej do
Pamiętaj, aby edytować ten komunikat i dołączyć odwołanie do numeru żądania ściągnięcia. To znaczy: (Zakładając, że numer żądania ściągnięcia to 123)
Więc następnym razem, gdy odwiedzisz stronę problemów / żądań ściągnięcia na Github i sprawdzisz to konkretne żądanie ściągnięcia, zobaczysz swoją wiadomość z linkiem do zatwierdzenia miejsca, w którym dokonałeś scalenia.
Oto zrzut ekranu tego, co mam na myśli.
źródło
Aby to zrobić, przejdź do strony domowej repozytorium, kliknij na gałęzie i zmień domyślną gałąź z master na coś innego, w moim przypadku "dev".
Następnie, za każdym razem, gdy ktoś utworzy żądanie ściągnięcia,
merge
przycisk automatycznie połączy żądanie z "deweloperem" zamiast głównym.źródło