umbenennen - how to rename git feature branch




Wie benenne ich einen lokalen Git-Zweig um? (20)

Ich möchte keinen Remote-Zweig umbenennen, wie in Master-Zweig umbenennen für lokale und Remote-Git-Repositorys beschrieben .

Wie kann ich einen lokalen Zweig umbenennen, der noch nicht an einen entfernten Zweig übertragen wurde?


1. Umbenennen

Wenn es Ihre aktuelle Niederlassung ist, tun Sie es einfach

git branch -m new_name

Wenn es sich um einen anderen Zweig handelt, den Sie umbenennen möchten

git branch -m old_name new_name

2. Verfolgen Sie einen neuen Remote-Zweig

- Wenn Ihr Zweig gepusht wurde, müssen Sie ihn nach dem Umbenennen aus dem Remote-Git-Repository löschen und Ihr neues lokales Netzwerk dazu auffordern, einen neuen Remote-Zweig zu verfolgen:

git push origin :old_name
git push --set-upstream origin new_name

  1. Benennen Sie Ihre Zweigstelle um.

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

git branch -m new-name

Wenn Sie sich in einer anderen Branche befinden:

git branch -m old-name new-name
  1. Löschen Sie den alten Zweig des alten Namens und drücken Sie den lokalen Zweig des neuen Namens.

git push origin :old-name new-name

  1. Setzen Sie den Upstream-Zweig für den lokalen Zweig mit dem neuen Namen zurück. Wechseln Sie zum Zweig und dann:

git push origin -u new-name

Um dies schnell zu tun, können Sie diese 3 Schritte verwenden:

# Zweig lokal umbenennen

git branch -m old_branch new_branch  

# Löschen Sie den alten Remote-Zweig

git push origin :old_branch  

# Drücken Sie den neuen Zweig und stellen Sie den lokalen Zweig ein, um die neue Fernbedienung zu verfolgen

git push --set-upstream origin new_branch   

Referance: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html


Benennen Sie den Zweig mit diesem Befehl um:

git branch -m [old_branch_name] [new_branch_name]

-m : Der Zweig wird umbenannt / verschoben. Wenn bereits ein Zweig vorhanden ist, wird ein Fehler angezeigt.

Wenn bereits ein Zweig vorhanden ist und Sie diesen Zweig umbenennen möchten, verwenden Sie Folgendes:

 git rename -M [old_branch_name] [new_branch_name]

Um weitere Informationen zur Hilfe zu erhalten, verwenden Sie diesen Befehl im Terminal:

git branch --help

oder

man git branch

Da Sie die Verzweigung nicht auf einen Remote-Server übertragen möchten, ist dieses Beispiel hilfreich:

Angenommen, Sie haben einen vorhandenen Zweig namens "my-hot-feature" und möchten diesen in "feature-15" umbenennen.

Zuerst möchten Sie Ihre lokale Niederlassung ändern. Das könnte nicht einfacher sein:

git branch -m my-hot-feature feature-15

Weitere Informationen finden Sie unter Lokaler und entfernter Umbenennung einer Zweigstelle in Git .


Der Versuch, die Frage (zumindest den Titel) spezifisch zu beantworten.

Sie können den lokalen Zweig auch umbenennen, verfolgen jedoch weiterhin den alten Namen auf der Fernbedienung.

git branch -m old_branch new_branch
git push --set-upstream origin new_branch:old_branch

Wenn Sie nun git push ausführen git push wird der entfernte old_branch Ref mit Ihrer lokalen new_branch aktualisiert.

Sie müssen diese Konfiguration kennen und sich merken . Es kann jedoch nützlich sein, wenn Sie keine Wahl für den Namen der Remote-Filiale haben, aber Sie mögen ihn nicht (oh, ich meine, Sie haben einen sehr guten Grund, ihn nicht zu mögen!) Und bevorzugen einen klareren Name für Ihre Niederlassung.

Beim Abrufen der Abrufkonfiguration können Sie sogar die lokale Remote-Referenz umbenennen. Das heißt, Sie haben einen refs/remote/origin/new_branch ref-Zeiger auf die Verzweigung, d. h. Ich entmutige dies jedoch sehr zur Sicherheit Ihres Geistes.


Die Antworten waren bis jetzt richtig, aber hier sind einige zusätzliche Informationen: Man kann einen Zweig mit '-m' umbenennen (verschieben), aber man muss vorsichtig sein, da '-M' die Umbenennung erzwingt, selbst wenn es einen gibt Zweig mit demselben Namen bereits. Hier ist der Auszug aus der Manpage 'git-branch':

Mit der Option -m oder -M wird <oldbranch> in <newbranch> . Wenn für <oldbranch> ein entsprechender Reflog vorhanden war, wird dieser umbenannt, um mit <newbranch> , und es wird ein Reklog-Eintrag erstellt, um die Umbenennung des Zweigs zu speichern. Wenn <newbranch> vorhanden ist, muss -M verwendet werden, um die Umbenennung zu erzwingen.


Eine andere Option ist, die Befehlszeile überhaupt nicht zu verwenden. Git-GUI-Clients wie SourceTree nehmen einen Großteil der syntaktischen Lernkurve / des Schmerzes weg, der SourceTree führt, dass Fragen wie diese am häufigsten in angezeigt werden.

Klicken Sie in SourceTree mit der rechten Maustaste auf einen lokalen Zweig im linken Bereich "Zweigwerke" und wählen Sie "Umbenennen ...".


Einfacher Weg:

git branch -m old_branch new_branch         # Rename branch locally    
git push origin :old_branch                 # Delete the old branch    
git push --set-upstream origin new_branch   # Push the new branch, set local branch to track the new remote

Weitere Informationen finden Sie this .


Fortgeschrittene Git-Benutzer können manuell umbenennen:

Rename the old branch under .git/refs/heads to the new name

Rename the old branch under .git/logs/refs/heads to the new name

Update the .git/HEAD to point to yout new branch name

Hier sind die Schritte zum Umbenennen des Zweigs:

1. switch to branch which needs to be renamed
2. git branch -m <new_name>
3. git push origin :<old_name>
4. git push origin <new_name>:refs/heads/<new_name>

BEARBEITEN (01.12.2017): Stellen Sie sicher, dass Sie den Befehl git status ausführen und prüfen, ob der neu erstellte Zweig auf seinen eigenen Ref und nicht auf einen älteren verweist. Wenn Sie den Verweis auf einen älteren Zweig finden, müssen Sie den Upstream deaktivieren, indem Sie Folgendes verwenden:

git branch --unset-upstream

Ich habe dumm einen Zweig mit einem Bindestrich benannt und dann den Master ausgecheckt. Ich wollte meinen Zweig nicht löschen , ich hatte Arbeit darin.

Keiner von diesen arbeitete:

git checkout -dumb-name

git checkout -- -dumb-name

" s, s und \ s haben auch nicht geholfen. git branch -m funktioniert nicht.

So habe ich es endlich behoben. Gehen Sie in die .git / refs / heads Ihrer Arbeitskopie, suchen Sie den Dateinamen "-dumb-name" und rufen Sie den Hash des Zweigs ab. Dann wird dies überprüft, ein neuer Zweig mit einem vernünftigen Namen erstellt und der alte gelöscht.

git checkout {hash}
git checkout -b brilliant-name
git branch -d -- -dumb-name

PHPStorm:

VCS-> Git-> Branches ...-> Local Branches-> _your_branch_ -> Umbenennen


Um den aktuellen Zweig umzubenennen (außer für den getrennten HEAD-Status), können Sie auch diesen Alias ​​verwenden:

[alias]
    mvh = !sh -c 'git branch -m `git rev-parse --abbrev-ref HEAD` $1'

Um einen Zweig lokal umzubenennen:

git branch -m [old-branch] [new-branch]

Nun müssen Sie diese Änderungen auch auf Ihrem Remote-Server verbreiten.

Änderungen des gelöschten alten Zweigs pushen:

git push origin :[old-branch]

Um die Änderungen beim Erstellen eines neuen Zweigs voranzutreiben:

git push origin [new-branch]

Wenn Sie den Namen des aktuellen Zweigs ändern möchten, führen Sie Folgendes aus:

git branch -m [old_branch] [new_branch]

Wenn Sie den alten Remote-Zweig löschen möchten, führen Sie Folgendes aus:

git push origin :[old_branch]

Wenn Sie den alten Remote-Zweig löschen und einen neuen Remote-Zweig erstellen möchten, führen Sie Folgendes aus:

git push origin :old_branch new_branch

Wenn Sie einen Zweig umbenennen möchten, während auf einen Zweig verwiesen wird, führen Sie folgende Schritte aus:

git branch -m <oldname> <newname>

Wenn Sie den aktuellen Zweig umbenennen möchten, können Sie Folgendes tun:

git branch -m <newname>

Eine Möglichkeit, sich daran zu erinnern, ist -m für "move" (oder mv ). So benennen Sie Dateien um.


Wie von anderen schon erwähnt, wird dies bei der Benennung von Zweigstellen zu einem Konflikt führen.

Wenn Sie eine solche Situation haben, kann ich vermuten, dass Sie Windows verwenden, was Sie auch zu folgenden Punkten führen wird:

$ git branch -m CaseSensitive casesensitive
fatal: A branch named 'casesensitive' already exists.

Dann müssen Sie einen Zwischenschritt machen:

$ git branch -m temporary
$ git branch -m casesensitive

Nichts mehr.


git branch umbenennen kann mit erfolgen

  1. git branch -m oldBranch newBranch

  2. git branch -M oldBranch ExistingBranch

Unterschied zwischen -m und -M ,

-m: Wenn Sie versuchen, Ihren Zweig mit dem vorhandenen Zweignamen mit -m umzubenennen, wird ein Fehler ausgegeben. Es gibt bereits einen Zweig. Sie müssen einen eindeutigen Namen angeben.

aber,

-M: Dies wird Ihnen helfen, das Umbenennen mit dem angegebenen Namen zu erzwingen, auch wenn es existiert. so wird der bestehende Zweig komplett damit überschrieben ...

Hier ist git terminal beispiel

[email protected]:~/project/myapp/sunithamakeup$ git branch 
  master
  master0
  new_master
  test
* test1
[email protected]:~/project/myapp/sunithamakeup$ git branch -m test1 test
fatal: A branch named 'test' already exists.
[email protected]:~/project/myapp/sunithamakeup$ git branch -M test1 test
[email protected]:~/project/myapp/sunithamakeup$ git branch 
  master
  master0
  new_master
* test
[email protected]:~/project/myapp/sunithamakeup$ 

Zweig umbenennen:

git branch -m old_branchname new_branchname

hier Der lange Name der Option -m lautet --move. So können wir auch verwenden

git branch --move old_branchname new_branchname

Wenn Sie den aktuellen Zweig umbenennen möchten, verwenden Sie diesen.

git branch -m new_branchname

oder

git branch -move new_branchname

Wenn Sie diese Änderungen auf Remote verschieben möchten, verwenden Sie die folgenden.

git push origin :old_branchname new_branchname

Dadurch wird der Remote-Zweig old_branchname gelöscht und der lokale Zweig new_branchname verschoben.

git push origin -u new_branchname

Dadurch wird der Upstream-Zweig für den lokalen Zweig new_branchname zurückgesetzt.


git branch -m old_branch_name  new_branch_name

oder

git branch --move old_branch_name new_branch_name




git-branch