Umbenennen eines Zweigs auf Pull-Anfrage

101

Auf Github können Sie Pull-Anforderungen stellen, um einem Projekt Funktionen hinzuzufügen. Die Beiträge müssen sich in einem Zweig befinden, der, wenn die Anfrage angenommen wird, in den Hauptzweig (oder einen analogen Zweig) des Projekts integriert wird.

Jetzt habe ich eine Pull-Anfrage bei Github eingereicht und meine Beiträge sind in einer Filiale namens patch-1. Ich kann den Namen der Niederlassung lokal durch ändern

git branch -m patch-1 newname

und im Prinzip kann ich es auch in meinem gegabelten Repo auf Github umbenennen, indem ich den Anweisungen in dieser Antwort folge . Dies geschieht in der Praxis, indem patch-1in meinem Fall der alte Zweig entfernt und unter einem anderen Namen neu gedruckt wird newname.

Darf der Zweig patch-1in meinem gegabelten Repository auf Github umbenannt werden, wenn es sich um eine Pull-Anforderung handelt? Oder verursacht es Probleme bei der Verwaltung von Pull-Anforderungen?

Gibt es eine Möglichkeit, einen Zweig in einem gegabelten Repository auf Github umzubenennen, wenn dieser Zweig eine Pull-Anforderung ist?

Michele
quelle

Antworten:

117

Das "Umbenennen" eines Remote-Zweigs in Git, wie durch den von Ihnen angegebenen Link angezeigt, bedeutet eigentlich nur das Löschen eines Zweigs, gefolgt vom Verschieben eines neuen Zweigs mit demselben Commit-Hash, aber einem neuen Namen. Wenn für Pull-Patch-1 eine Pull-Anforderung geöffnet ist und Sie diesen Zweig löschen, wird die Pull-Anforderung geschlossen.

Nein, Sie können den Zweig nicht mit geöffneter Pull-Anforderung umbenennen, ohne den Zweig zu löschen und die Pull-Anforderung zu entfernen. Nichts hindert Sie jedoch daran, einen neuen Zweig mit einem neuen Namen zu verschieben und eine neue Pull-Anforderung zu erstellen.

Arbylee
quelle
186
Ein Grund dafür ist, die Diskussion über die bestehende PR zu verlieren.
Johnny Everson
6
Ich verstehe nicht, warum eine so strenge Einschränkung beim Umbenennen des Quellzweigs in PR. Das gleiche nervige Verhalten gibt es im Bitbucket. Ein anderer Ansatz wäre, die PR zu bearbeiten und den Quellzweig in einen anderen Zweig zu ändern. Man könnte sagen "Wenn Sie den Quellzweig ändern, dann ist es sowieso eine neue PR". Technisch gesehen ja, aber auch nichts hindert den Entwickler daran, sich vor einem völlig anderen Zweig zu etablieren und dann a git push -f. Die PR wird mit einem völlig neuen Code aktualisiert und ist immer noch die "gleiche" PR.
L. Holanda
31

Kurze Antwort:

Nein

Alternativer Ansatz:

  1. Öffnen Sie eine neue PR mit einem neuen (umbenannten) Zweig
  2. Schließen Sie die alte PR, die auf die neue verweist (z. B. zugunsten von #new_pr_id geschlossen).
  3. Ändern Sie die Beschreibung des neuen PR (z. B. Ersetzt #old_pr_id).
  4. (optional) Machen Sie einen Kommentar zur relevanten Diskussion über die alte PR

Hinweis:

Der Name einer Remote-Zweigstelle (die einen PR darstellt) musste geändert werden, da das Build-System den Namen der Zweigstelle benötigte, der mit der Ticket-ID endet. Die PR wurde jedoch vor der offiziellen Ticketerstellung (anhand der technischen Daten) geöffnet und enthielt wertvolle Diskussionen. Der beschriebene Ansatz war der einzige Weg, um das Build-System funktionsfähig zu machen und auch keine Informationen zu verlieren (obwohl es einen zusätzlichen Schritt bei der Verfolgung gab).

Slobodan Ilic
quelle
9
Angesichts der Tatsache, dass Zweige normalerweise nach dem Zusammenführen gelöscht werden, ist es meiner Meinung nach besser, den Namen für eine Weile "ungenau" zu "tolerieren", als den Overhead einer neuen PR hinzuzufügen, die sich auf die alte PR bezieht, um die historische Diskussion zu verfolgen.
Neo