GitHub: Eine zusammengeführte Pull-Anfrage wird erneut geöffnet

101
  • Ich habe einige Änderungen vorgenommen
  • Ich habe eine Pull-Anfrage eingereicht
  • Die Pull-Anfrage wurde akzeptiert und zusammengeführt.
  • Wir haben einen Fehler gefunden
  • Die Änderungen wurden wieder entfernt, während ich den Fehler behoben habe.

Ich habe jetzt den Fehler behoben und möchte die Pull-Anfrage mit 1 zusätzlichen Commit erneut senden. Gibt es eine Möglichkeit, die Pull-Anfrage erneut zu öffnen oder zu aktualisieren, oder muss ich eine neue Pull-Anfrage erstellen, die Beschreibung usw. erneut eingeben? Gitorious hat diese Funktion und wir sind kürzlich zu GitHub gewechselt.

Michael Parker
quelle
Ich war heute in einer ähnlichen Situation, dh ich habe die Schaltfläche "Merge Pull Request" verwendet, die standardmäßig die Änderungen in den Zielzweig zusammenführt und den PR schließt. Ich entdeckte später einen Fehler beim Testen, den der ursprüngliche Entwickler beheben sollte. Ich wollte eine Möglichkeit, diese PR erneut zu öffnen, damit mehr Commits zu derselben PR hinzugefügt werden können, konnte dies jedoch nicht, da es keine Schaltfläche zum erneuten Öffnen der PR gibt.
SBirthare

Antworten:

114

Die Antwort scheint zu sein: Sie können nicht.

Sobald eine Pull-Anforderung zusammengeführt und geschlossen wurde, ist sie für immer gesperrt und kann nicht erneut geöffnet werden. Wenn Ihre Pull-Anforderung zusammengeführt, geschlossen und Ihre Änderungen zurückgezogen werden (durch erzwungenes Zurückschieben vor dem Zusammenführen), müssen Sie dem Zweig Commits hinzufügen und eine neue Pull-Anforderung erstellen, alle Details kopieren und wahrscheinlich bereitstellen Ein Link zur ursprünglichen Pull-Anforderung zum manuellen Speichern des Verlaufs.

Könnte eine nette Feature-Anfrage für zukünftigen GitHub sein.

Michael Parker
quelle
8
Ich weiß nicht, wann es geändert wurde, aber Sie können geschlossene PRs jetzt kommentieren und wieder öffnen.
LB
16
@LB, es scheint nicht, dass Sie PRs, die geschlossen und zusammengeführt wurden, wieder öffnen können .
Ein Kaptur
1
Das kannst du tatsächlich. Angenommen, Sie haben die anfängliche Zusammenführung zurückgesetzt, können Sie einen Zweig des Haupt-Repos erstellen und in diesem neuen Zweig nur das Commit zurücksetzen, das die Zusammenführung zurückgesetzt hat.
SsjCosty
7
@SsjCosty Dies bedeutet jedoch nicht, dass eine geschlossene und zusammengeführte PR erneut geöffnet wird. Sie können jederzeit neue Pull-Anforderungen öffnen, was für Ihre Lösung erforderlich ist.
Adam Grant
1
"Könnte eine nette Feature-Anfrage für zukünftigen GitHub sein." Eigentlich nein, würde es nicht. Wenn PRs nach der Erstellung neu definiert werden könnten, würden Personen, die die PR zu unterschiedlichen Zeiten auschecken, möglicherweise abdriften. Erstellen Sie einfach eine weitere PR und "erwähnen" Sie die vorherige im Text. Wenn Sie auf eine Art Meilenstein verweisen möchten, müssen Sie sich keine PRs ansehen, sondern Tags.
Scott Prive
12

Ich habe gerade erfolgreich eine Pull-Anfrage von geöffnet

  1. Kommentar zur Pull-Anfrage
  2. Klicken Sie auf die Schaltfläche "Senden und erneut öffnen", die im Kommentarformular angezeigt wird.
Tim Lovell-Smith
quelle
1
Ich habe es nicht geschafft, dies zu replizieren. Können Sie die Schritte erklären, die erforderlich sind, um dieses Verhalten zu sehen? Ich habe versucht, eine geschlossene Pull-Anfrage zu kommentieren (hat nicht funktioniert), eine geschlossene Pull-Anfrage zu kommentieren und auf den Zweig zu drücken, in den sie gezogen wurde (hat nicht funktioniert). Sonst noch etwas zu versuchen? Muss die Pull-Anforderung zusammengeführt und später irgendwie wieder zusammengeführt werden?
Michael Parker
Ich weiß nicht, was die versteckte Anforderung ist, die einen Unterschied macht. Könnte einer von sein (habe neue Änderung für Pull-Anfrage eingereicht, bin Mitglied von Projektbesitzern, andere ...)
Tim Lovell-Smith
1
Ich habe jetzt alles versucht, was Sie erwähnt haben, kann es immer noch nicht sehen. Ich bin der Repo-Besitzer. Wenn Sie bei Google nach "GitHub senden und erneut öffnen" suchen, erhalten Sie einen einzigen Treffer - diese Seite. Alle weiteren Informationen wären äußerst hilfreich. Wurde Ihre Pull-Anfrage zunächst abgelehnt?
Michael Parker
52
Ich kann dies mit nicht zusammengeführten Pull-Anfragen replizieren - aber darum geht es in diesem Thread nicht.
Dan Tello
2
Ja, er bezieht sich auf geschlossene Pulls, nicht auf zusammengeführte Pulls.
Loujaybee
4

Leiten Sie einfach einen neuen Zweig aus dem vorhandenen Zweig ab, in dem Sie zusätzlich 1 Commit ausgeführt haben. Von dort senden Sie die Pull-Anfrage.

Siva Gollapalli
quelle
3
Dies würde zu einer neuen Pull-Anforderung führen, bei der keine Historie für das Original vorhanden ist.
Dave
1
Das habe ich letztendlich getan. Ja, die Geschichte ist weniger linear, aber für mich ist es in Ordnung.
Possen
4

Sie können die Aktion "Zurücksetzen" verwenden:

Geben Sie hier die Bildbeschreibung ein

Es wird eine weitere Pull-Anforderung erstellt, die alle in der zusammengeführten PR vorgenommenen Änderungen rückgängig macht.

William Weckl
quelle
Dies ist nicht die beste Vorgehensweise :)
Antonbormotov
2
@antonbormotov können Sie einen besseren Ansatz vorschlagen?
William Weckl
Nehmen wir an, wir haben pr mit Commits (mA und mB) zu einem stabilen Zweig zusammengeführt, den wir zurücksetzen möchten. Nach dem Zusammenführen von "revert" pr sieht der Verlauf wie ein Commit-Baum aus: XY-mA-mB-CD-rA-rB-EF. Warum möchten Sie all diese Commits in der Historie sehen, die Änderungen (mA, mB) anwenden und sie dann abbrechen (rA, rB)? Es wäre besser, diese "schlechten" Commits mA und mB aus dem stabilen Zweig zu entfernen und den Verlauf sauber zu halten. Natürlich ist es sinnvoll, wenn die Zusammenführung relativ neu war.
Antonbormotov
1
Der Verlauf wird nicht nur hässlich aussehen, Sie können auch die zurückgesetzten Commits nicht mehr einfach wieder zusammenführen, wenn Sie bereit sind.
Michael
Ich hatte ein ähnliches Szenario mit geringem Unterschied. Ich hatte eine PR, die ich überprüfen musste, und sollte warten, bis eine weitere PR zusammengeführt wurde. Aber ich habe es nicht gesehen und diese PR vorzeitig zusammengeführt. Ich habe tatsächlich getan, was @WilliamWeckl vorgeschlagen hat. Aber jetzt möchte ich dieselbe PR mit denselben Änderungen erstellen, die ursprünglich erstellt wurden. Aber wenn ich die PR erstelle, zeigt der Hauptzweig keinen Unterschied, obwohl wenn ich einzelne Dateien sehe, sie unterschiedlich sind. Irgendwelche Gedanken?
Vikas