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

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ń
Daij-Djan
źródło
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
1
@skywinder może mógłbyś sprawdzić to pytanie: Czy można zmienić kod innych osób w żądaniach ściągnięcia (Github)?
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.

Malvineous
źródło
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.
użytkownik_19
źródło
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
hexaJer
źródło
Próbowałem do zmiany oddziału , ale myślę, head/labeli head/refnie są edytowalne.
hexaJer