Frage Wie ändere ich den Basiszweig einer Pull-Anfrage?


Ich habe eine Pull-Anforderung für ein Projekt auf GitHub an eine bestimmte Remote-Zweigstelle erstellt. Nach einiger Zeit wurde der Remote-Zweig gelöscht.

Wie kann ich die Pull-Anfrage so ändern, dass sie auf einen anderen Zweig verweist (genauer gesagt master)


76
2018-04-09 23:15


Ursprung


Antworten:


Aktualisiert: Wie Michael unten bemerkt, Das ist jetzt möglich:

Sie können jetzt den Basiszweig einer offenen Pull-Anforderung ändern. Nachdem Sie eine Pull-Anforderung erstellt haben, können Sie die Basisverzweigung so ändern, dass die Änderungen in der Pull-Anforderung mit einer anderen Verzweigung verglichen werden. Indem Sie den Basiszweig Ihrer ursprünglichen Pull-Anforderung ändern, anstatt einen neuen Zweig mit der korrekten Basisverzweigung zu öffnen, können Sie wertvolle Arbeit und Diskussionen behalten.

Drücke den Bearbeiten Klicken Sie auf den Titel der Pull-Anforderung, um den Basiszweigselektor anzuzeigen.

An animated example of how to change a pull request's base branch.


Alte Antwort

Du kannst nicht. Mach einfach eine neue Pull-Anfrage.


74
2018-04-09 23:18



Obwohl dies nicht dokumentiert ist, können Sie dies mithilfe der GitHub-REST-API tun.

Die Verwendung der API wird in erklärt diese Antwort, aber im Grunde können Sie eine REST-Anfrage wie diese ausgeben:

$ curl --user "tom" \
       --request PATCH \
       --data '{"issue": "15", "head": "tom:new-branch", "base": "master"}' \
       https://api.github.com/repos/fred/fabproj/pulls

Dies wird die Pull - Anfrage ändern, die in Ausgabe 15 auf der fred/fabproj Repo, um das zu verwenden new-branch verzweigen Sie sich auf die tom/fabproj Gabel.

Bearbeiten: Hinweis: Laut den obigen Ausführungen ist das oben nur für a Neu Ziehen Sie die Anfrage zu einem bestehenden Problem.


36
2017-08-16 09:07



Ab dem 15.08.2016 ist dies jetzt nativ via möglich Github:

Sie können jetzt den Basiszweig einer offenen Pull-Anforderung ändern. Nachdem Sie eine Pull-Anforderung erstellt haben, können Sie die Basisverzweigung so ändern, dass die Änderungen in der Pull-Anforderung mit einer anderen Verzweigung verglichen werden. Indem Sie den Basiszweig Ihrer ursprünglichen Pull-Anforderung ändern, anstatt einen neuen Zweig mit der korrekten Basisverzweigung zu öffnen, können Sie wertvolle Arbeit und Diskussionen behalten.


18
2017-08-15 19:08



Ich könnte den Zielzweig ändern. Es stimmt, dass wir den Namen des Zielzweigs im PR nicht bearbeiten können. Aber der Trick besteht darin, den Zweig in etwas anderes umzubenennen und den Zielzweig in den bereits vorhandenen in PR umzubenennen.

Beispiel: Mein PR hat einen Namen wie "dev-4.9". Es gibt einen anderen Zweig, der "qa-4.9" genannt wird. Alles was ich will ist, dass "qa-4.9" der PR-Zielzweig sein sollte. Schritte: 1 1) Nenne den Zweig "dev-4.9" in etwas anderes "original-dev-4.9"

git checkout dev-4.9
git branch -w original-dev-4.9
git push origin original-dev-4.9

2) Benennen Sie den Zweig "qa-4.9" in "dev-4.9" um.

git checkout qa-4.9
git branch -w dev-4.9
git push origin dev-4.9 -f (force push to write entire branch to reflect dev-4.9)

3) Aktualisieren Sie die PR-URL und sehen Sie sich die Commits in qa-4.9 an, die dort reflektiert werden.


2
2017-11-28 14:15



Anstatt alle mit einem PR verbundenen Kommentare an einen gelöschten Zweig zu verlieren:

  1. Erstelle die Verzweigung erneut lokal mit dem gleichen Namen und dem gleichen Inhalt, zu dem die Verzweigung, zu der du verschmelzen möchtest;
  2. Drücken Sie auf diesen Zweig, um den Remote-Zweig neu zu erstellen. und dann
  3. Öffnen Sie den PR für den Zweig erneut.

Zum Beispiel haben Sie einen PR zu branch1, der gelöscht wird. Sie möchten nun eine Zusammenführung durchführen, um Kommentare zu Ihrer bestehenden PR zu erhalten und zu behalten:

  1. Git Kasse Master
  2. git ziehen
  3. git checkout -b branch1
  4. Git drücken
  5. Öffne deine PR erneut zu branch1
  6. Wenn Sie zu "branch1" zusammengeführt werden, führen Sie sie zum Master zusammen.

Das ist ein bisschen hacky, aber viel besser als viele Kommentare zu zerstören.


1
2018-02-03 03:48



Github unterstützt dies jetzt. Bearbeiten-Schaltfläche am rechten Ende der PR.


0
2018-02-06 07:27



In der Theorie...

Du solltest es benutzen github api.

Beispiel: Bearbeiten Sie die Pull-Anfrage mit locken

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

Sie finden die detaillierte Liste der Daten in github Entwickler doc

Beispiel: Ändern Sie den Namen von meine 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

aber in der Praxis ...

Es scheint, dass die Felder head/label und head/ref sind nicht editierbar. Für jetzt scheint die einzige Lösung zu sein das von Bernstein


-2
2018-03-27 15:26