421 Stimmen

Wie fügt man einen neuen Pull Request an eine bestehende Ausgabe auf Github an?

Ich bin mir nicht sicher, aber ich erinnere mich vage daran, dass ich eine Github-Pull-Anfrage mit "Issue 4" oder so im Titel erstellt habe, die sich automatisch an Issue 4 in dem Projekt anschloss, an das ich sie übermittelte. Ich habe es kürzlich wieder versucht und es hat nicht funktioniert - stattdessen wurde einfach ein neuer Issue erstellt. Ich sehe keine Optionen wie "Attach to issue" auf der neuen Pull Request Seite, noch "Open a new pull request for this issue" auf der Issue Seite. Gibt es eine Möglichkeit, dies zu tun, um den Projektverantwortlichen zu helfen, ihre Themenseite sauber zu halten und Doppelarbeit zu vermeiden?

bearbeiten : Zur Klarstellung: Ich weiß, dass das Erstellen eines Pull-Requests immer eine neu Problem. Ich möchte stattdessen die Pull-Anfrage an eine bestehende Problem.

258voto

masukomi Punkte 9245

Das Hinzufügen einer Pull-Anfrage zu einem bestehenden Upstream-Problem ist einfach unter der Annahme, dass Sie mit den normalen Github-Mitteln geforkt haben .

Verweisen Sie einfach in Ihrer Commit-Nachricht auf das Problem, indem Sie eine der Unterstützte Schlüsselwörter :

  • schließen
  • schließt
  • geschlossen
  • reparieren
  • behebt
  • fest
  • beheben
  • löst auf.
  • aufgelöst

Zum Beispiel: "diese Übergabe behebt #116"

Der Text, der sich auf das Problem bezieht, muss nicht in der Betreffzeile Ihrer Meldung erscheinen.

Schieben Sie Ihren Commit in Ihr Github-Repositorium und die Pull-Anfrage wird automatisch an das Issue angehängt.

Hinweis: Obwohl es nicht erforderlich ist, wird dringend empfohlen, dass Sie alles, was Teil einer Pull-Anfrage sein wird, in einen separaten Zweig speziell für dieses Problem übertragen, da zukünftige Übertragungen auf diesem Zweig an die Pull-Anfrage angehängt werden (automatisch von Github). Wenn Sie also keinen separaten Zweig erstellen, sondern ihn auf Master belassen und dann weiter entwickeln, werden alle Ihre nicht verwandten Commits an Master an Ihre Pull-Anfrage angehängt.

245voto

Christian Oudard Punkte 45045

Le Nabe Projekt kann dies tun.

In dem Repository und dem Zweig, von dem aus Sie eine Pull-Anfrage senden möchten:

$ hub pull-request -i 4

Dabei wird die GitHub-API verwendet und eine Pull-Anfrage für den aktuellen Zweig an die bestehende Problemnummer 4 angehängt.


EDITAR: Kommentar von @atomicules: Um die Antwort von @MichaelMior zu erweitern, ist ein vollständiges Beispiel:

$ hub pull-request -i 4 -b USERNAME_OF_UPSTREAM_OWNER:UPSTREAM_BRANCH -h YOUR_USERNAME:YOUR_BRANCH URL_TO_ISSUE

144voto

technoweenie Punkte 806

Sie können einen Pull Request aus einem bestehenden Issue mit dem Pull Request API :

$ curl --user "smparkes" \
       --request POST \
       --data '{"issue": 15, "head": "smparkes:synchrony", "base": "master"}' \
       https://api.github.com/repos/technoweenie/faraday/pulls

Dadurch wird eine Pull-Anfrage erstellt:

  • fragen Sie technoweenie im Projekt faraday (https://api.github.com/repos/ technoweenie / faraday /pulls)
  • zum Ziehen aus dem synchrony Zweigstelle in smparkes ' fork ("Kopf": " smparkes : Synchronität ")
  • zum master Zweigstelle in technoweenie ("Basis": " Meister ")
  • und fügen Sie die Pull-Anfrage der Ausgabe 15 ("Ausgabe": 15 )
  • mit dem Autor der Pull-Anfrage smparkes (--benutzer " smparkes ")
  • werden Sie aufgefordert, Ihr GitHub-Passwort einzugeben

17voto

nulltoken Punkte 59849

Ein weiteres mögliches Instrument ist das Issue2Pr-Website die Ihre Probleme in Pull Requests umwandelt.

Es ist sehr einfach und effektiv!

enter image description here

Ressourcen:

10voto

Rory O'Kane Punkte 27128

Diese andere Antwort erklärt, wie man cURL ( curl ), um einen Pull Request aus einem Issue über die GitHub-API . So geht's mit HTTPie ( http ), was zu einem einfacher zu lesenden und zu bearbeitenden Befehl führt:

$ http --auth "<your-GitHub-username>" \
       POST \
       https://api.github.com/repos/<issue-repo-owner>/<issue-repo-name>/pulls \
       issue=<issue-number> head=<your-GitHub-username>:<your-fork-branch-name> base=<issue-repo-branch-name>

Geben Sie dann Ihr GitHub-Passwort ein, wenn Sie dazu aufgefordert werden.

Erläutertes Beispiel

Sie haben sich bei GitHub mit dem Benutzernamen smparkes und Passwort Jäger2 . Sie sahen technoweenie Das Repo faraday dachte an etwas, das geändert werden sollte, und erstellte ein Issue in diesem Repo dafür, Ausgabe # 15 . Später stellen Sie fest, dass niemand sonst die von Ihnen vorgeschlagene Änderung vorgenommen hat, und Sie haben auch etwas Zeit, sie selbst vorzunehmen. Sie Gabel faraday auf Ihr eigenes Konto , schreiben Sie Ihre Änderungen und schieben Sie sie zu Ihrem Fork unter einem Zweig namens Synchronität . Sie denken technoweenie sollte diese Änderungen in die Meister Zweig seines Repo. Dies ist der Befehl, den Sie schreiben würden, um Ihr vorheriges Issue in einen Pull Request für diese Situation umzuwandeln:

$ http --auth "smparkes" \
       POST \
       https://api.github.com/repos/technoweenie/faraday/pulls \
       issue=15 head=smparkes:synchrony base=master

http: password for smparkes@api.github.com: hunter2

Jetzt Ausgabe # 15 ist ein Pull Request.

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