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ć?
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:
po prostu wypchnij więcej zatwierdzeń do gałęzi, której dotyczy żądanie. Żądanie ściągnięcia odbierze to wtedy
Jeśli chcesz, aby b został włączony do pliku master
Miałem tylko jedno zatwierdzenie w żądaniu ściągnięcia i git commit --amend
aktualizowałem je. Następnie wykonałem push, git push -f
wię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.
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:
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
Dodaj swoje dopracowane zatwierdzenia bezpośrednio do tej nowo utworzonej gałęzi.
git commit -m "twoja wiadomość"
Wypchnij tę gałąź do własnego rozwidlonego pilota (może być nazwany origin).
Możesz także użyć Github API .
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
curl --user "jeremyclement" \
--request PATCH \
--data '{"title":"allows the control of files and folders permissions."}' \
https://api.github.com/repos/Gregwar/Cache/pulls/9