Jak zmodyfikować żądanie ściągnięcia Github


163

Otworzyłem żądanie ściągnięcia do projektu. Opiekun zdecydował się to zaakceptować, ale polecił mi zmodyfikować część zawartości.

Jak mogę to zrobić? Czy powinienem pozostawić wartość skrótu zatwierdzenia niezmienioną, jak mogę to zrobić?


Odpowiedzi:


178

po prostu wypchnij więcej zatwierdzeń do gałęzi, której dotyczy żądanie. Żądanie ściągnięcia odbierze to wtedy

Przykład:

Jeśli chcesz, aby b został włączony do pliku master

  1. Wciskasz c1, c2, c3 do b
  2. następnie zgłoś nową prośbę dotyczącą b
  3. zostanie sprawdzony i potrzebujesz więcej zatwierdzeń
  4. Wciskasz c11, c21, c31 do b
  5. Żądanie ściągnięcia pokazuje teraz wszystkie 6 sześciu zatwierdzeń

6
Czy możliwe jest dodanie zatwierdzeń do tego żądania ściągnięcia przez kogoś innego, z wyjątkiem autora tego żądania ściągnięcia?
skywinder,

4
każdy, kto naciska na konkretną gałąź
Daij-Djan

@ Daij-Djan bardzo często, jeśli ktoś wykonuje pull request, wypycha go do swojego rozwidlenia repozytorium. Czy jest możliwe dodanie commits do takiego PR przez osoby, które nie mają dostępu do jego forka?
Maciek Łoziński


@ MaciekŁoziński odpowiedź też jest tylko wtedy, gdy „możesz [możesz]
pushować

34

Miałem tylko jedno zatwierdzenie w żądaniu ściągnięcia i git commit --amendaktualizowałem je. Następnie wykonałem push, git push -fwięc moje zmienione zatwierdzenie zastąpiło oryginalne. Żądanie ściągnięcia automatycznie odebrało nowe zatwierdzenie. (Właściwie pokazywał oba zatwierdzenia, ale kiedy ponownie załadowałem stronę, stary commit zniknął).

Więc chociaż wymuszone wypychanie nie jest generalnie zalecane, może być przydatne w przypadku żądań ściągnięcia. Nie jest to zalecane, ponieważ jeśli ktoś oprze zatwierdzenie na twoim, będzie musiał wykonać rebase po twojej zmianie. Ale ponieważ nikt nie powinien opierać swojej pracy na żądaniu ściągnięcia, które nie zostało sprawdzone, powinno to być całkiem bezpieczne w tej sytuacji.


8

Jeśli będziesz nadal wprowadzać zmiany i nadal wypychać do tej samej gałęzi, dopracowane zatwierdzenia zostaną dodane do tego samego żądania ściągnięcia (chyba że żądanie ściągnięcia zostało scalone). Może to spowodować, że historia będzie bardzo zagracona.

Alternatywne rozwiązanie i technika, której używam, są następujące:

  1. Utwórz nową gałąź (poprawki) z repozytorium (upstream) i gałąź (programowanie), do której zamierzasz wysłać żądanie ściągnięcia, wykonując:

    Git branch naprawia upstream / develop

  2. Dodaj swoje dopracowane zatwierdzenia bezpośrednio do tej nowo utworzonej gałęzi.

    git commit -m "twoja wiadomość"

  3. Wypchnij tę gałąź do własnego rozwidlonego pilota (może być nazwany origin).

  4. Porównaj i wyślij nowe żądanie ściągnięcia z czystą historią zatwierdzania.
  5. Ponadto dobrym pomysłem jest usunięcie gałęzi po scaleniu żądania ściągnięcia.
  6. Możesz komentować i zamykać swoje wcześniejsze żądania ściągnięcia.

1

Możesz także użyć Github API .

przykład z curl

curl --user "your_github_username" \
     --request PATCH \
     --data '{"title":"newtitle","body":"newbody",...}' \
     https://api.github.com/repos/:owner/:repo/pulls/:number

szczegółową listę danych można znaleźć w dokumentacji dewelopera na github

przykład: zmień nazwę mojego żądania ściągnięcia

curl --user "jeremyclement" \
     --request PATCH \
     --data '{"title":"allows the control of files and folders permissions."}' \
     https://api.github.com/repos/Gregwar/Cache/pulls/9

Próbowałem do zmiany oddziału , ale myślę, head/labeli head/refnie są edytowalne.
hexaJer
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.