417 Stimmen

Umbenennen eines Zweigs in GitHub

Ich habe gerade meinen lokalen Zweig umbenannt mit

git branch -m oldname newname

aber dies benennt nur die lokale Version des Zweigs um. Wie kann ich die Version auf GitHub umbenennen?

14voto

Vi. Punkte 33406

Entfernen Sie einfach den alten Zweig und erstellen Sie einen neuen.

Beispiel (nur Umbenennung des entfernten Zweigs):

git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname

Wahrscheinlich sollten Sie auch den lokalen Zweig umbenennen und die Einstellungen für die Push-/Pull-Funktion ändern.

14voto

VonC Punkte 1117238

Auf der GitHub-Seite können Sie die neue (Jan. 2021) " Unterstützung für die Umbenennung eines bestehenden Zweigs " (geschützte Zweige können nur von Administratoren umbenannt werden, siehe Ende)

Folgen Sie dieser Anleitung: https://docs.github.com/en/github/administering-a-repository/renaming-a-branch

rename branch dialog -- https://i2.wp.com/user-images.githubusercontent.com/2503052/105069955-a231fa80-5a50-11eb-982c-a114c9c44c57.png?ssl=1

Siehe " Wie benenne ich einen Zweig auf der GitHub-Website um? ".

Dies ist ein besserer Ansatz, da die Umbenennung eines Zweigs auf diese Weise (auf github.com) ( Quelle ):

  • Offene Pull-Anfragen neu ausrichten
  • Aktualisieren Sie alle Versionsentwürfe basierend auf dem Zweig
  • Verschieben Sie alle Verzweigungsschutzregeln, die ausdrücklich auf den alten Namen verweisen
  • Aktualisieren Sie den Zweig, der zum Erstellen von GitHub Pages verwendet wird, falls zutreffend
  • Anzeige eines Hinweises für Mitwirkende, Betreuer und Administratoren des Projektarchivs auf der Homepage des Projektarchivs mit Anweisungen zur Aktualisierung lokaler Kopien des Projektarchivs
  • Anzeige eines Hinweises für Mitwirkende, die einen Git-Push auf den alten Zweig durchführen
  • Umleitung von Webanfragen für den alten Zweigniederlassungsnamen auf den neuen Zweigniederlassungsnamen
  • Rückgabe einer Antwort "Dauerhaft verschoben" in API-Anfragen für den alten Zweigniederlassungsnamen

Update Dez. 2021:

Umbenennung geschützter Zweige auf Administratoren beschränken

Jetzt können nur noch Administratoren Zweige umbenennen, die durch Zweigschutzregeln geschützt sind.

GitHub erlaubt es Repository-Mitarbeitern, jeden Branch eines Repositorys umzubenennen, mit Ausnahme des Standard-Branches.

Wenn ein Mitwirkender einen Zweig umbenennt, werden alle Regeln zum Schutz von Zweigen ohne Platzhalter, die für diesen Zweig gelten, ebenfalls an den neuen Namen des Zweigs angepasst.

Da nur Administratoren die Regeln für den Zweigschutz ändern können, ist die Umbenennung eines geschützten Zweigs jetzt auf Admin-Benutzer beschränkt.

Weitere Informationen finden Sie unter Umbenennen eines Zweigs y Verwaltung einer Zweigschutzregel .

11voto

avivamg Punkte 8416

So einfach ist das . Um einen Git-Zweig lokal und per Fernzugriff umzubenennen, verwenden Sie dieses Snippet (getestet und funktioniert einwandfrei):

git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>

Erläuterung:

  1. Schritt umbenennen:

Git-Referenz: Mit der Option -m oder -M wird <alter Zweig> in <neuer Zweig> umbenannt. Wenn <alterZweig> ein entsprechendes Reflog hatte, wird es umbenannt, um mit <neuerZweig> umbenannt, und es wird ein Reflog-Eintrag erstellt, um die Umbenennung zu erinnern. Wenn <neuerZweig> existiert, muss -M verwendet werden, um die Umbenennung zu erzwingen zu erzwingen.

  1. Schritt löschen:

Git-Referenz: git push origin :experimental Finden Sie eine Referenz, die mit experimental in dem ursprünglichen Repository (z. B. refs/heads/experimental) und löschen Sie es.

  1. Aktualisierung des Schritts zum entfernten Repository (Upstream-Referenz zur Nachverfolgung):

Git-Referenz: --set-upstream Für jeden Zweig, der auf dem neuesten Stand ist oder erfolgreich gepusht wurde, füge eine Upstream-Referenz (Tracking) hinzu, die von argument-less git-pull[1] und anderen Befehlen verwendet wird. Für weitere Informationen siehe branch.<Name>.merge in git-config[1].

3voto

Wiley Punkte 456

Bei mir hat das folgendermaßen funktioniert:

  1. Erstellen Sie zunächst den neuen Zweig:

    git push github newname :refs/heads/newname
  2. Gehen Sie auf der GitHub-Website zu den Einstellungen und ändern Sie die Standard-Zweigstelle a newname

  3. Löschen Sie die oldname

    git push github --delete oldname

3voto

Dies ist eine zusätzliche Bedingung in Hazarapet Tunanyan's Antwort.

git branch -m old_branch new_branch         # Rename branch locally

git push origin :old_branch                 # Delete the old branch
# You might be getting an error doing the above step, skip to the next step

git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

Sie erhalten einen Fehler, wenn Sie git push origin :old_branch denn alte_Zweigstelle die Sie zu löschen versuchen, könnte die Standard-Zweigstelle .

Führen Sie einfach die anderen 2 Schritte aus und ändern Sie dann in den Einstellungen von github die Standardverzweigung, dann können Sie Folgendes tun git push origin :old_branch .

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