Ä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.

Alex
quelle
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
Mögliches Duplikat von Wie benenne ich einen lokalen Git-Zweig um?
Vineet Jain

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.

Richard Fearn
quelle
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

javierdvalle
quelle
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