Ich habe gerade meine lokale Niederlassung mit umbenannt
git branch -m oldname newname
Dadurch wird jedoch nur die lokale Version des Zweigs umbenannt. Wie kann ich die auf GitHub umbenennen?
Ich habe gerade meine lokale Niederlassung mit umbenannt
git branch -m oldname newname
Dadurch wird jedoch nur die lokale Version des Zweigs umbenannt. Wie kann ich die auf GitHub umbenennen?
Antworten:
Wie bereits erwähnt, löschen Sie den alten auf Github und drücken Sie ihn erneut, obwohl die verwendeten Befehle etwas ausführlicher als nötig sind:
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>
Ein Push ohne Angabe von local_branch bedeutet also im Wesentlichen, "nichts aus meinem lokalen Repository zu nehmen und es zum Remote-Zweig zu machen". Ich habe immer gedacht, dass dies völlig klobig ist, aber so wird es gemacht.
Bearbeiten: Ab Git 1.7 gibt es eine alternative Syntax zum Löschen eines Remote-Zweigs:
git push origin --delete name_of_the_remote_branch
Bearbeiten: Wie von @ void.pointer in den Kommentaren erwähnt
Beachten Sie, dass Sie die beiden Push-Vorgänge kombinieren können:
git push origin :old_branch new_branch
Dadurch wird sowohl der alte Zweig gelöscht als auch der neue verschoben.
Dies kann in einen einfachen Alias umgewandelt werden, der den Namen des entfernten, ursprünglichen Zweigs und des neuen Zweigs als Argumente verwendet ~/.gitconfig
:
[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. Weitere Informationen finden Sie in dieser Diskussion .
git push origin :old_branch new_branch
. Dadurch wird sowohl der alte Zweig gelöscht als auch der neue verschoben.
git branch -m new_branch
(benenne old_branch in new_branch um) 2. git commit -m 'msg'
, 3. git push
4. Mhmm, old_branch taucht in Github auf, Google-Frage und ich werde zu deiner Antwort geführt 5. git push origin :old_branch
(sagt es gelöscht) 6. git push origin new_branch
... vervollständigt dann sagt * [new branch] new_branch -> old_branch
. Geh zurück zu Github und tauche old_branch
wieder auf. Wenn ich in der Github-Web-Benutzeroberfläche lösche, habe ich die Option "Wiederherstellen". Es scheint also, als würde das Drücken der new_branch nur wiederhergestellt.
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
Ich habe 3 Befehle gefunden, wie Sie Ihren Git-Zweignamen ändern können, und 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 benötigen, können Sie diesen großartigen Artikel lesen
git push --set-upstream
Dies ist der wichtigste Teil, wenn Sie den Filialnamen lokal mit der Github-App ändern, bevor Sie die Remote-Filiale löschen.
Entfernen Sie einfach den alten Zweig und erstellen Sie einen neuen.
Beispiel (ausschließlich Umbenennen des Remote-Zweigs):
git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname
Sie sollten wahrscheinlich auch den lokalen Zweig umbenennen und die Einstellungen für das Drücken / Ziehen ändern.
git push origin newname:refs/heads/newname
? master und newname verweisen möglicherweise nicht auf dasselbe Commit.
1. Benennen Sie Ihre lokale Niederlassung um.
Wenn Sie sich in der Filiale befinden, die Sie umbenennen möchten:
git branch -m new-name
Wenn Sie sich in einem anderen Zweig befinden:
git branch -m old-name new-name
2. Löschen Sie den Remote-Zweig mit dem alten Namen und drücken Sie den lokalen Zweig mit dem neuen Namen.
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 in die Filiale und dann:
git push origin -u new-name
Die Schlussfolgerung lautet also
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
git branch -m new-name && git push origin :master new-name
. Es wird scheitern. Wenn es bei dieser Antwort nur um Git und nicht um Github geht, ist diese Frage ein Duplikat mehrerer anderer Fragen und sollte geschlossen werden. Wenn es wirklich um Github geht, muss die Antwort Github abdecken. Diese Antwort nicht.
Sie können dies ohne Terminal tun. Sie müssen lediglich einen Zweig mit dem neuen Namen erstellen und den alten nach entfernen. Sie können diesen Beitrag verwenden, um das zu tun.
Folgendes hat bei mir funktioniert:
1.) Erstelle zuerst den neuen Zweig: git push github neuer Name: refs / Heads / neuer Name
2.) Gehen Sie auf der Github-Site zu den Einstellungen und ändern Sie den Standardzweig in newname
3.) Lösche den alten Namen git push github - lösche den alten Namen
Dieser Artikel zeigt, wie es ganz einfach geht.
1. Um einen lokalen Git-Zweig umzubenennen, können Sie den Namen mit git branch -m feature1 feature2
dem Befehl Git branch -m ändern:
2. Wenn Sie nur nach dem Befehl zum Umbenennen eines Remote-Git-Zweigs suchen, ist dies "
git push -u origin feature2:feature3
Überprüfen Sie, ob Sie keinen haben." Tags auf dem Zweig, bevor Sie dies tun. Sie können dies mit tun git tag
.
Eine andere Möglichkeit besteht darin , die folgenden Dateien umzubenennen :
.git/refs/head/[branch-name]
in.git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
in.git/refs/remotes/[all-remote-names]/new-branch-name
Benennen Sie head & remotes sowohl auf Ihrem lokalen PC als auch auf den Ursprüngen / Remote-Servern um.
Wenn Ihr aktueller Filialname slashes ( /
) 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
Wunsch Branchenname: "new-branch-name"
branch
Datei von.git/refs/*/awe/some/
.git/refs/head/
.branch
Datei von allen.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
Dateien in um new-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
to umbenannt new-branch-name
(lokal und remote!)Info: Dieser Weg ist vielleicht nicht der beste, aber er funktioniert immer noch für Leute, die Probleme mit den anderen Wegen haben könnten
In meinem Fall benötigte ich einen zusätzlichen Befehl
, damit mein umbenannter Zweig hochgeschoben werden konnte .
git branch --unset-upstream
origin newname
(Zur Erleichterung des Tippens), ich zuerst git checkout oldname
.
Führen Sie dann Folgendes aus:
git branch -m newname
git push origin :oldname
oder odergit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
git push origin newname
Dieser zusätzliche Schritt ist möglicherweise nur erforderlich, weil ich (in der Regel) die Fernverfolgung in meinen Filialen über einrichte . Auf diese Weise brauche ich nach dem Auschecken nur noch den Typ anstattgit push
-u
origin oldname
oldname
git push
git push origin oldname
Wenn ich den Befehl vorher NICHT benutze , erstellt git neu und drängt darauf - meine Absicht zu besiegen.git branch --unset-upstream
git push origin newbranch
oldbranch
newbranch
origin oldbranch
Mit den folgenden Befehlen wird der Zweig lokal umbenannt, der alte Zweig am Remote-Standort gelöscht und der neue Zweig verschoben, wobei der lokale Zweig so eingestellt wird, dass der neue Remote verfolgt wird:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
So einfach ist das . Um git branch lokal umzubenennen und remote zu verwenden, verwenden Sie dieses Snippet (getestet und funktioniert wie ein Zauber):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Erläuterung:
Schritt umbenennen:
Git-Referenz: Wird mit der Option -m oder -M in umbenannt. Wenn ein entsprechendes Reflog vorhanden ist, wird es entsprechend umbenannt und ein Reflog-Eintrag erstellt, um die Umbenennung des Zweigs zu speichern. Wenn vorhanden, muss -M verwendet werden, um die Umbenennung zu erzwingen.
Schritt löschen:
Git-Referenz: git push origin: experimentell Suchen Sie im Ursprungs-Repository nach einer Referenz , die mit experimentell übereinstimmt (z. B. refs / Heads / experimentell), und löschen Sie sie.
Update auf Remote Repo Schritt (Upstream-Referenz für Tracking):
Git-Referenz: --set-upstream Fügen Sie für jeden Zweig, der aktuell ist oder erfolgreich gepusht wurde, eine Upstream-Referenz (Tracking-Referenz) hinzu, die von git-pull [1] ohne Argumente und anderen Befehlen verwendet wird. Weitere Informationen finden Sie unter branch..merge in git-config [1].
Git Push Origin Kopf
Git-Zweig -m alter-Zweig-Name neuer-Zweig-Name
Git Push Origin Kopf
Führen Sie auf dem Git-Zweig git branch -m alter_name neuer_name aus. Dadurch wird der Zweigstellenname auf Ihrem lokalen Repo-Git-Push-Ursprung geändert: alter_name neuer_name Hiermit wird der geänderte Name auf remote verschoben und der alte Zweig gelöscht Remote-Zweig. Dies löst das Problem