Ich habe gerade meine lokale Niederlassung mit umbenannt
git branch -m oldname newname
damit wird jedoch nur die lokale Version des Zweigs umbenannt. Wie kann ich den in github umbenennen?
Wie bereits erwähnt, löschen Sie den alten Befehl unter Github & Re-Push, obwohl die verwendeten Befehle etwas ausführlicher sind als nötig:
git Push Origin :name_of_the_old_branch_on_github
git Push Origin new_name_of_the_branch_that_is_local
Einfach. Wenn Sie die Befehle ein wenig zerlegen, lautet der Befehl git Push im Wesentlichen:
git Push <remote> <local_branch>:<remote_branch>
Wenn Sie also einen Push ohne die Angabe von local_branch ausführen, bedeutet dies im Wesentlichen, dass Sie "nichts aus meinem lokalen Repository nehmen und es zur Remote-Verzweigung machen". Ich habe immer gedacht, dass dies völlig blöd ist, aber es ist die Art und Weise, wie es gemacht wird.
Edit: Ab Git 1.7 gibt es eine alternative Syntax zum Löschen eines entfernten Zweigs:
git Push Origin --delete name_of_the_remote_branch
Edit: Wie von @ void.pointer in den Kommentaren erwähnt
Beachten Sie, dass Sie die 2 Push-Vorgänge kombinieren können:
git Push Origin :old_branch new_branch
Dadurch wird sowohl der alte Zweig als auch der neue Zweig gelöscht.
Dies kann in einen einfachen Alias umgewandelt werden, der die entfernte, ursprüngliche Verzweigung und den neuen Verzweigungsnamen als Argumente in ~/.gitconfig
Verwendet:
[alias]
branchm = "!git branch -m $2 $3 && git Push $1 :$2 $3 -u #"
Verwendungszweck:
git branchm Origin old_branch new_branch
Beachten Sie, dass Positionsargumente in Shell-Befehlen in älteren (vor 2.8?) Versionen von git problematisch waren, sodass der Alias je nach git-Version variieren kann. Siehe diese Diskussion für Details.
Folgende Befehle haben bei mir funktioniert:
git Push Origin :old-name-of-branch-on-github
git branch -m old-name-of-branch-on-github new-name-for-branch-you-want
git Push Origin new-name-for-branch-you-want
Entfernen Sie einfach den alten Zweig und erstellen Sie einen neuen.
Beispiel (nur Umbenennung des entfernten Zweigs):
git Push Origin :refs/heads/oldname
git Push Origin newname:refs/heads/newname
Sie sollten wahrscheinlich auch die lokale Verzweigung umbenennen und die Einstellungen für den Push/Pull-Bereich ändern.
Ich habe 3 Befehle gefunden, mit denen Sie den Namen Ihres Git-Zweigs ändern können. Diese Befehle sind eine schnellere Möglichkeit, dies zu tun
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
Wenn Sie Schritt für Schritt brauchen, können Sie diesen großartigen Artikel lesen
Sie können dies ohne Terminal tun. Sie müssen lediglich eine Verzweigung mit dem neuen Namen erstellen und die alte nachher entfernen. Sie können diesen Beitrag dazu verwenden.
Dieser Artikel zeigt, wie es ganz einfach geht.
1. Um einen lokalen Git-Zweig umzubenennen, können Sie den Namen mit dem Befehl Git branch -m ändern:git branch -m feature1 feature2
2. Wenn Sie nur nach dem Befehl zum Umbenennen eines entfernten Git-Zweigs suchen, ist dies "git Push -u Origin feature2:feature3
Vergewissern Sie sich, dass Sie keine Tags im Zweig haben, bevor Sie dies tun. Das kannst du mit git tag
.
In meinem Fall brauchte ich einen zusätzlichen Befehlgit branch --unset-upstream
, um meinen umbenannten Zweig auf Push up to Origin newname
.
(Zur Erleichterung der Eingabe), habe ich zuerst git checkout oldname
.
Führen Sie dann Folgendes aus:
git branch -m newname
git Push Origin :oldname
oder git Push Origin --delete oldname
git branch --unset-upstream
git Push -u Origin newname
oder git Push Origin newname
Dieser zusätzliche Schritt ist möglicherweise nur erforderlich, weil ich die Fernverfolgung in meinen Filialen über git Push
-u
Origin oldname
. Auf diese Weise brauche ich nach dem Auschecken von oldname
nur noch den Typ git Push
eher, als git Push Origin oldname
Wenn ich das tue NICHT benutze den Befehl git branch --unset-upstream
Vor git Push Origin newbranch
, git erstellt oldbranch
neu und schiebt newbranch
auf Origin oldbranch
- meine Absicht zu besiegen.
Folgendes hat bei mir funktioniert:
1.) Erstellen Sie zuerst den neuen Zweig: git Push github newname: refs/heads/newname
2.) Wechseln Sie auf der Github-Site zu Einstellungen und ändern Sie den Zweig Standard in neuen Namen
3.) Lösche den alten Namen git Push github - lösche den alten Namen
Mit den folgenden Befehlen wird die Verzweigung lokal umbenannt, die alte Verzweigung am Remote-Standort gelöscht und die neue Verzweigung übertragen. Dabei wird die lokale Verzweigung so eingestellt, dass die neue Verzweigung verfolgt wird:
git branch -m old_branch new_branch
git Push Origin :old_branch
git Push --set-upstream Origin new_branch
Eine andere Möglichkeit besteht darin, die folgenden Dateien umzubenennen:
.git/refs/head/[branch-name]
in .git/refs/head/new-branch-name
um.git/refs/remotes/[all-remote-names]/[branch-name]
in .git/refs/remotes/[all-remote-names]/new-branch-name
umBenennen Sie head & remotes sowohl auf Ihrem lokalen PC als auch auf Ursprungsserver (n)/Remote-Server (n) um
Wenn Ihr aktueller Filialname Schrägstriche (/
) Enthält, erstellt git die Verzeichnisse wie folgt:
aktueller Filialname:"awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
wünsche branch-name:"new-branch-name"
branch
Datei von .git/refs/*/awe/some/
.git/refs/head/
ein.branch
Datei von allen .git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
ein.branch
Dateien in new-branch-name
um..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
In new-branch-name
Umbenannt (lokal und remote!)Info: Dieser Weg ist vielleicht nicht der beste, aber er funktioniert immer noch für Menschen wer könnte probleme mit den anderen möglichkeiten haben