Einen Git-Zweig lokal und remote umbenennen? [duplicate]

Lesezeit: 2 Minuten

Einen Git Zweig lokal und remote umbenennen duplicate
Rémi Becheras

Gibt es eine Möglichkeit, einen Git-Zweig lokal umzubenennen und in den Remote-Zweig zu verschieben, auch wenn bereits viele Commits an den Remote-Zweig gepusht werden?

Oder ist es notwendig, einen neuen lokalen Branch zu erstellen, den alten lokalen Branch zu löschen und dann den Vorgang für das Remote-Repository zu wiederholen?

Einen Git Zweig lokal und remote umbenennen duplicate
Rémi Becheras

Ja,

das Merkmal move existiert, um die Filiale lokal umzubenennen

git branch --move <old_name> <new_name>

aber um es zu pushen, musst du das Alte löschen und das Neue pushen

git checkout <new_name>
git push origin [--set-upstream] <new_name>
git push origin --delete <old_name>

--set-upstream ist optional, es konfiguriert den neuen lokalen Branch, um den gepushten zu verfolgen

Sie können die folgenden Abkürzungen verwenden:

  • lokal verschieben (–move):

      git branch -m <old_name> <new_name>
    
  • push new branch (–set-upstream, optional) :

      git push origin [-u] <new_name>
    
  • löschen (–löschen):

      git push origin -d <old_name>
    

Achtung.

Danke an Toreks Kommentar:

Erwähnenswert ist übrigens, dass man

  1. benachrichtigen Sie andere Benutzer, die den Upstream teilen, dass Sie dies tun werden, und
  2. tun Sie dies in der angezeigten Reihenfolge (neuen Namen festlegen, dann alten löschen).

Der Grund für Nummer 1 ist, dass sich diese Benutzer anpassen müssen.

Der Grund für #2 ist hauptsächlich Effizienz: Es vermeidet das erneute Kopieren von Objekten in ein Upstream-Repository, das Commits beim Löschen von Zweigen verwirft (die meisten nackten Repositorys tun dies, und die meisten Repositorys, die Pushs akzeptieren, sind nackt).

  • Sehr gering. Ich glaube, Sie verwechseln das lokale Löschen einer Filiale mit branch -D mit der Remote-Kurzschrift. Aber keine solche -D Option existiert als Abkürzung für --delete im neuesten git (git version 2.14.+), eher Kleinbuchstaben -d. So sollte es sein git push origin -d <old_name>

    – Anfänger C

    27. September ’17 um 2:39


  • Wenn Sie eine Open PR (z. B. auf GitHub) mit dem <old_name> es wird geschlossen, wenn Sie den Remote-Zweig löschen, Sie müssen also einen neuen erstellen, da es (zu diesem Zeitpunkt) keine Möglichkeit gibt, den Zweig zu ändern, auf dem eine PR basiert (Sie können nur das Ziel ändern).

    – Martin Marconcini

    21. Februar ’18 um 21:21

  • Eine noch knappere Möglichkeit, einen Remote-Zweig zu löschen, ist git push origin :[old_branch_name].

    – gelegentlich

    8. März ’19 um 1:12

  • Bei einigen Fernbedienungen (zB Bitbucket) vor dem letzten Schritt (--delete), müssen Sie die Zuweisung des Zweigs als “Standard”-Zweig des Repositorys “aufheben”.

    – Janaka Bandara

    2. Mai ’21 um 12:03

.

223980cookie-checkEinen Git-Zweig lokal und remote umbenennen? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy