Jak wykonać pull request w GitHub tylko z najnowszym zatwierdzeniem w gałęzi master mojego rozwidlonego repozytorium
Rozwidlałem repozytorium na GitHubie. Wprowadziłem kilka zmian i poprosiłem o ściągnięcie.
Teraz wprowadziłem kilka innych zmian i chcę wykonać nowe żądanie pull request, ale na ekranie podglądu przed wykonaniem żądania pull pokazuje również stare commity (te, które zostały już zaakceptowane).
Jak wybrać tylko najnowszy commit w gałęzi głównej mojego rozwidlonego repozytorium, aby móc wykonać pull request tylko z tym commitem?
2 answers
Ta odpowiedź od współpracownika naprawiła mój problem:
git checkout -b NEW_BRANCH_NAME LAST_COMMIT_NAME_BEFORE_THE_ONE_WANTED
git cherry-pick COMMIT_NAME_WANTED
git push origin NEW_BRANCH_NAME
Następnie na Githubie możesz wykonać pull request dla nowej gałęzi, którą utworzyłeś.
UPDATE
Zapytałem i odpowiedziałem na to pytanie, Kiedy zacząłem pracować z Gitem. Teraz, gdy Wiem więcej na ten temat, chciałbym rozszerzyć tę odpowiedź.
Podczas pracy z forkiem prawdopodobnie chcesz go aktualizować w odniesieniu do oryginalnego repo. Więc to będą kroki, które podążam dzisiaj:
git remote add upstream GIT_URL_OF_THE_ORIGINAL_REPO
Teraz masz odniesienie o nazwie upstream
, które wskazuje na to repo. Domyślnie powinieneś mieć również inną o nazwie origin
, która wskazywałaby na Twój fork w tym przypadku. upstream
i origin
jest tak, jak ludzie zwykle nazywają te odniesienia, ale możesz użyć dowolnej nazwy, którą chcesz.
Teraz musisz pobrać najnowsze zmiany:
git fetch upstream
Następnie, jeśli chcesz zaktualizować widelec o zmiany z upstream
zrobisz to:
git checkout master //checkout your master branch
git merge upstream/master //merge changes from the master branch in upstream into the branch you checked out (master)
git push origin master //if you want to push your updated master to your remote fork
Teraz, aby odpowiedzieć na oryginalne pytanie, co bym dzisiaj zrobił, gdybym chciał zgłosić nowy PR, brzmiałoby :
git fetch upstream //get the latest changes from the original repo
git checkout -b my_new_feature upstream/master //create a new branch, starting from the master in the original repo
git cherry-pick WHATEVER_COMMIT_I_WANT //select the commit I want and add it to this new branch
git push origin my_new_feature //push a new branch to my fork
Wtedy prosiłbym o nowy PR dla my_new_feature
oddziału.
Możesz zastąpić git cherry-pick WHATEVER_COMMIT_I_WANT
tylko modyfikacją / dodaniem pliku, a następnie wykonaniem git add FILENAME
, git commit -m "Fixing some stuff"
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-20 18:18:42
Prawdopodobnie można umieścić commity w oddzielnej gałęzi (rozgałęzienie przed pierwszym zestawem commitów), zakładając, że nie są one powiązane z pierwszymi commitami. Wtedy oddzielna gałąź może być celem żądania pull i będzie zawierać tylko drugi zestaw zmian.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-06 05:36:34