So ändern Sie die Github-Pull-Anforderung?

Antworten:

177

Schieben Sie einfach mehr Commits in den Zweig, für den die Anfrage bestimmt ist. Die Pull-Anfrage nimmt dies dann auf

Beispiel:

Wenn Sie b in master zusammenführen möchten

  1. Sie drücken c1, c2, c3 nach b
  2. dann stellen Sie eine neue Anfrage für b
  3. Es wird überprüft und Sie benötigen mehr Commits
  4. Sie drücken c11, c21, c31 auf b
  5. Die Pull-Anfrage zeigt jetzt alle 6 sechs Commits an
Daij-Djan
quelle
6
Ist es möglich, Commits zu dieser Pull-Anfrage von einer anderen Person hinzuzufügen, außer dem Autor dieser Pull-Anfrage?
Skywinder
4
Jeder, der auf die jeweilige Branche drängt
Daij-Djan
@ Daij-Djan sehr oft, wenn jemand eine Pull-Anfrage stellt, schiebt er zu seiner eigenen Gabelung des Repositorys. Ist es möglich, einer solchen PR Commits hinzuzufügen, wenn Personen keinen Commit-Zugriff auf seine Gabel haben?
Maciek Łoziński
1
@skywinder Vielleicht könnten Sie diese Frage überprüfen: Ist es möglich, den Code anderer Leute in Pull-Anfragen (Github) zu ändern?
Maciek Łoziński
@ MaciekŁoziński die Antwort ist auch nur, wenn "Sie [können] zu dem bestimmten Zweig pushen" :)
Daij-Djan
34

Ich hatte nur ein Commit in einer Pull-Anfrage und habe es immer git commit --amendaktualisiert. Ich habe dann einen Force Push mit gemacht, git push -fso dass mein geändertes Commit das ursprüngliche ersetzt hat. Die Pull-Anforderung hat das neue Commit automatisch übernommen. (Es wurden tatsächlich beide Commits angezeigt, aber als ich die Seite neu lud, war das alte Commit verschwunden.)

Ein erzwungener Push wird im Allgemeinen nicht empfohlen, kann jedoch für Pull-Anforderungen hilfreich sein. Es wird nicht empfohlen, da jemand, der ein Commit auf Ihr basiert, nach Ihrer Änderung eine Rebase durchführen muss. Da sich niemand bei seiner Arbeit auf eine Pull-Anfrage stützen sollte, sollte dies in dieser Situation ziemlich sicher sein.

Malvineous
quelle
7

Wenn Sie weiterhin Änderungen vornehmen und weiterhin auf denselben Zweig pushen, werden die verfeinerten Commits derselben Pull-Anforderung hinzugefügt (es sei denn, Ihre Pull-Anforderung wurde zusammengeführt). Dies könnte die Geschichte sehr unübersichtlich machen.

Eine alternative Lösung und eine Technik, die ich verwende, ist wie folgt:

  1. Erstellen Sie einen neuen Zweig (Fixes) aus dem Repository (Upstream) und dem Zweig (Entwickeln), an den Sie die Pull-Anforderung senden möchten, indem Sie Folgendes tun:

    Git Branch Fixes Upstream / Entwicklung

  2. Fügen Sie Ihre verfeinerten Commits direkt zu diesem neu erstellten Zweig hinzu.

    git commit -m "Ihre Nachricht"

  3. Schieben Sie diesen Zweig auf Ihre eigene Gabelfernbedienung (könnte als Ursprung bezeichnet werden).

  4. Vergleichen und senden Sie eine neue Pull-Anforderung mit einem sauberen Commit-Verlauf.
  5. Es ist auch eine gute Idee, Ihren Zweig zu löschen, nachdem die Pull-Anforderung zusammengeführt wurde.
  6. Und Sie können Ihre früheren Pull-Anfragen kommentieren und schließen.
user_19
quelle
1

Sie können auch Github API verwenden .

Beispiel mit Locken

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

Die detaillierte Datenliste finden Sie in Github-Entwicklers

Beispiel: Ändern Sie den Namen meiner Pull-Anfrage

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
quelle
Ich habe versucht, den Zweig zu wechseln, aber ich denke head/labelund kann head/refnicht bearbeitet werden.
HexaJer