it-swarm.com.de

So benennen Sie einen Remote-Git-Zweignamen um

Ich habe 4 Köpfe wie Master -> Origin/regacy, FeatureA -> Origin/FeatureA.

Wie Sie oben sehen können, habe ich einen falschen Namen eingegeben. 

Ich möchte also einen Namen für einen entfernten Zweig umbenennen (Origin/regacy => Origin/Legacy oder Origin/Master).

Ich versuche unten zu befehlen.

git remote umbenennen regacy vermögen

Aber git console hat mir eine msg zurückgeschickt.

fehler: Konfig-Abschnitt 'remote.regacy' konnte nicht in .__ umbenannt werden. 'remote.legacy'

Wie kann ich dieses Problem lösen?

196
JayD

 enter image description here


Sie können einen Remote-Zweig nicht direkt umbenennen.
Sie müssen es löschen und dann erneut drücken. 

Einen Zweig umbenennen

# rename the local branch to the new name
git branch -m <old_name> <new_name> 

# delete the old branch on remote - where <remote> is eg. Origin
git Push <remote> --delete old_name

# Push the new branch to remote         
git Push <remote> new_name

# Reset the upstream branch for the new_name local branch
git Push <remote> -u new-name

 enter image description here


Wichtige Notiz :

Wenn Sie git branch -m (move) verwenden, gibt git auch Ihren Tracking-Zweig mit dem neuen Namen aktualisiert.

git remote rename legacy legacy

git remote rename versucht, Ihren Remote-Abschnitt in Ihrer Konfigurationsdatei zu aktualisieren. Die Fernbedienung wird mit dem angegebenen Namen in den neuen Namen umbenannt. In Ihrem Fall wurden jedoch keine gefunden, sodass die Umbenennung fehlgeschlagen ist. 

Aber wird nicht das tun, was Sie denken, es wird Ihren Remote-Namen local config und nicht den Remote-Zweig umbenennen.


Note Git-Server können es Ihnen ermöglichen, git branch über das Webinterface oder externe Programme (wie Sourctree usw.) umzubenennen, aber Sie müssen bedenken, dass in git die gesamte Arbeit lokal ausgeführt wird die obigen Befehle zur Arbeit.

399
CodeWizard

Wenn Sie einen Zweig falsch benannt haben und dies in das Remote-Repository übertragen haben, führen Sie die folgenden Schritte aus, um diesen Zweig umzubenennen ( basierend auf diesem Artikel ):

  1. Benennen Sie Ihren lokalen Zweig 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

  2. Löschen Sie den old-name entfernten Zweig und drücken Sie den lokalen Zweig new-name:
    git Push Origin :old-name new-name

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

53
ZILONG PAN

Es scheint, dass es einen direkten Weg gibt:

Wenn Sie Zweige wirklich nur aus der Ferne umbenennen möchten (ohne gleichzeitig lokale Zweige umzubenennen), können Sie dies mit einem einzigen Befehl wie

git Push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name>

https://stackoverflow.com/a/21302474/2586761

Weitere Einzelheiten finden Sie in der ursprünglichen Antwort

24
ptim

Dies kann auch auf folgende Weise geschehen:

At first rename local branch, then remote branch.

Lokale Zweigstelle umbenennen:  

Wenn in einem anderen Zweig angemeldet ist_

git branch -m old_branch new_branch 

Wenn in demselben Zweig eingeloggt_

git branch -m new_branch

Remote-Zweig umbenennen:

git Push Origin :old_branch    // delete remote branch

git Push --set-upstream Origin new_branch   // create new remote branch
4
Atequer Rahman

Dies kann auch ohne Umbenennen des lokalen Zweigs in drei einfachen Schritten erfolgen:

  1. Gehen Sie zu Ihrem Repository in GitHub
  2. Erstellen Sie einen neuen Zweig aus dem alten Zweig, den Sie umbenennen möchten
  3. Alten Zweig löschen
0
Code_Mode

Es gibt keine direkte Methode,

  1. Lokale Niederlassung umbenennen ,

    mein jetziger Zweig ist Master

    git branch -m master_renamed #master_renamed ist der neue Name des Masters

  2. entfernte Zweigstelle löschen,

    git Push Origin --delete master #Origin ist entfernter_name

  3. Umbenannten Zweig in Remote verschieben,

    git Push Origin master_renamed

das ist es...

Ich benutze diesen Git-Alias ​​und er erledigt den Job ziemlich automatisch:

git config --global alias.move '!git checkout master; git branch -m $1 $2; git status; git Push --delete Origin $1; git status; git Push -u Origin $2; git branch -a; exit;'

Verwendung: Git Move FROM_BRANCH TO_BRANCH

Es funktioniert, wenn Sie die Standardnamen wie master, Origin usw. haben. Sie können nach Belieben ändern, aber es gibt Ihnen die Idee.

0
Tarik