Ändern Sie einen Filialnamen in einem Git-Repo


295

Wie benenne ich einen vorhandenen Zweig in einem Git-Repo um?

Ich möchte, dass der aktuelle Zweig einen neuen Namen hat.


2
Akzeptieren Sie eine Antwort @Alex oder sagen Sie, warum Sie sie nicht akzeptieren möchten.
Charlie Parker

1
@CharlieParker Es hat wahrscheinlich etwas damit zu tun, dass dies Alex 'einzige Frage war, und er hat sich wahrscheinlich seitdem nicht mehr angemeldet: "Zuletzt gesehen am 3. Februar 11 um 21:29"
Gelb-Heiliger

13
@JB OMG sagst du, dass ihm vielleicht etwas passiert ist ??? !!!!!!!!!
Abbood

1
Könnte die hochgewählte Antwort darauf akzeptiert werden?
Steve Chambers

Antworten:


465

Angenommen, Sie befinden sich derzeit in dem Zweig, den Sie umbenennen möchten:

git branch -m newname

Dies ist im Handbuch dokumentiert git-branch, das Sie mit anzeigen können

man git-branch

oder

git help branch

Insbesondere lautet der Befehl

git branch (-m | -M) [<oldbranch>] <newbranch>

wo die Parameter sind:

   <oldbranch>
       The name of an existing branch to rename.

   <newbranch>
       The new name for an existing branch. The same restrictions as for <branchname> apply.

<oldbranch> ist optional, wenn Sie den aktuellen Zweig umbenennen möchten.


10
Oder git branch -m other-branch renamed-other-branchwenn nicht.
Mipadi

32
Wenn Sie den alten Zweig auf eine Fernbedienung verschoben haben, können Sie ihn auch mit löschen git push origin :branchname. Auf diese Weise können Sie den neuen verschieben und den alten löschen und ihn im Wesentlichen auf der Fernbedienung umbenennen.
Jonathan

1
@mipadi, es erstellt den neuen Zweig und löscht nicht den vorherigen.
Mohammad Arif

git branch (-m | -M) [<oldbranch>] <newbranch> Hat bei mir nicht funktioniert und den Syntaxfehler angegeben.
Mohammad Arif

@MohammedArif Mit -m, es benennt den alten Zweig, so dass es nicht den vorherigen löschen.
Richard Fearn

177

Wenn Sie sich derzeit in der Filiale befinden, die Sie umbenennen möchten:

git branch -m new_name 

Oder aber:

git branch -m old_name new_name 

Sie können überprüfen mit:

git branch -a

Wie Sie sehen, hat sich nur der lokale Name geändert. Um den Namen auch auf der Fernbedienung zu ändern, müssen Sie Folgendes tun:

git push origin :old_name

Dadurch wird der Zweig entfernt und mit dem neuen Namen hochgeladen:

git push origin new_name

Quelle: https://web.archive.org/web/20150929104013/http://blog.changecong.com:80/2012/10/rename-a-remote-branch-on-github


13
Ich denke, dies ist die richtige Antwort. Die hochgewählte Antwort von Richard Feam bezieht sich nur auf lokales Repo, diese auf Remote.
user1145404

4
In Übereinstimmung mit dem obigen Kommentar war diese Antwort in meinem Fall vollständiger. Als ich nach allen in dieser Antwort genannten Schritten zusätzliche Commits an den Remote-Zweig gesendet habe, hat git erneut versucht, einen Push an den old_nameZweig zu senden. Glücklicherweise hat git auch einen Fix in der Kommandozeile geliefert : git-branch --unset-upstream. Danach gingen alle Push-Commits an den new_nameRemote-Zweig.
Hans Roerdinkholder

2
Passen Sie auf, dass Sie auf diese Weise die Fähigkeit verloren haben, mit git pushIhnen zu pushen, weil Sie eine Warnung erhalten, die besagt, dass Your branch is based on 'old_name, but the upstream is gone.A sie git push -u origin new_namelösen soll.
Netalex
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.