672 Stimmen

Wie aktualisiert man eine Pull-Anfrage aus einem Forked Repo?

Also habe ich zuerst ein Repository geforkt und dann eine Übergabe an das geforkte Repository vorgenommen. Dann öffnete ich einen Pull-Request. Die Pull-Anfrage listete alle Änderungen auf, die ich wollte.

Nach der Überprüfung meines Pull-Requests gab es eine Reihe von Änderungen, die ich auf Wunsch des Besitzers des Repo vornehmen sollte, bevor er es akzeptierte. Ich habe diese Änderungen in meinem Fork vorgenommen. Wie aktualisiere ich nun den Pull-Request mit diesen Änderungen (oder sollte ich es nicht so handhaben)?

661voto

shelhamer Punkte 28084

Sie haben es richtig gemacht. Die Pull-Anfrage wird automatisch aktualisiert. Der Prozess ist:

  1. Pull-Request öffnen
  2. Änderungen auf der Grundlage von Feedback in Ihr lokales Repository einbinden
  3. In den entsprechenden Zweig Ihres Forks schieben

Die Pull-Anfrage fügt die neuen Commits automatisch zum Commits Registerkarte der PR.

83voto

jmu Punkte 3549

Eine Pull-Anfrage in GitHub zu aktualisieren ist so einfach, wie die gewünschten Änderungen in den bestehenden Zweig (der mit der Pull-Anfrage verwendet wurde) zu committen, aber oft ist es auch gewünscht, die Änderungen in einem einzigen Commit zusammenzufassen:

git checkout yourbranch
git rebase -i origin/master

# Edit command names accordingly
  pick   1fc6c95 My pull request
  squash 6b2481b Hack hack - will be discarded
  squash dd1475d Also discarded

git push -f origin yourbranch

...und jetzt enthält der Pull Request nur noch einen Commit.


Verwandte Links zum Thema Umbasierung:

39voto

igorw Punkte 27031

Pushen Sie einfach in den Zweig, auf den die Pull-Anfrage verweist. Solange die Pull-Anfrage noch offen ist, sollte sie automatisch mit allen hinzugefügten Commits aktualisiert werden.

16voto

Vikasdeep Singh Punkte 19310

Ich habe es mit den folgenden Schritten gemacht:

  1. git reset --hard <commit key of the pull request>
  2. Habe meine Änderungen im Code gemacht, die ich machen wollte
  3. git add
  4. git commit --amend
  5. git push -f origin <name of the remote branch of pull request>

3voto

AaronLS Punkte 35857

Bei Verwendung von GitHub unter Windows :

  1. Nehmen Sie Änderungen lokal vor.
  2. Öffnen Sie GitHub, wechseln Sie zu den lokalen Repositories und doppelklicken Sie auf das Repository.
  3. Wechseln Sie den Zweig (oben im Fenster) zu dem Zweig, von dem aus Sie die Pull-Anfrage erstellt haben (d.h. der Zweig auf Ihrer Fork-Seite des Vergleichs)
  4. Sie sollten die Option sehen, rechts einen Commit-Kommentar einzugeben und die Änderungen an Ihr lokales Repository zu übertragen.
  5. Klicken Sie auf sync on top, was unter anderem Ihren Commit vom lokalen zum entfernten Fork auf GitHub schiebt.
  6. Der Pull Request wird automatisch mit den zusätzlichen Commits aktualisiert. Das liegt daran, dass die Pull-Anfrage einen Unterschied zum Zweig Ihrer Abzweigung darstellt. Wenn Sie auf die Pull-Request-Seite gehen (die Seite, auf der Sie und andere Ihren Pull-Request kommentieren können), sollte der Reiter Commits Ihre zusätzliche(n) Commits enthalten.

Aus diesem Grund sollten Sie, bevor Sie eigene Änderungen vornehmen, einen Zweig für jeden Satz von Änderungen erstellen, die Sie in eine Pull-Anfrage einbringen wollen. Auf diese Weise können Sie, sobald Sie die Pull-Anfrage gestellt haben, einen anderen Zweig erstellen und die Arbeit an einer anderen Aufgabe/Funktion/Bugfix fortsetzen, ohne die vorherige Pull-Anfrage zu beeinträchtigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X