wake-up-neo.com

Umbenennen einer Niederlassung in Github

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?

247
enchance

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.

273
Adam Parkin

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
14

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.

13
Vi.

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

mbenennen von Git Local und Remote Branches

11

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.

https://github.com/blog/1377-create-and-delete-branches

3
rneves

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.

1
Daniel Kobe

In meinem Fall brauchte ich einen zusätzlichen Befehl
git 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-uOrigin 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.

1
SherylHohman

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

1
Wiley

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
0
Pooja Mane

Eine andere Möglichkeit besteht darin, die folgenden Dateien umzubenennen:

  1. navigieren Sie in Ihrem Projektverzeichnis
  2. benenne .git/refs/head/[branch-name] in .git/refs/head/new-branch-name um
  3. benenne .git/refs/remotes/[all-remote-names]/[branch-name] in .git/refs/remotes/[all-remote-names]/new-branch-name um

Benennen Sie head & remotes sowohl auf Ihrem lokalen PC als auch auf Ursprungsserver (n)/Remote-Server (n) um

Branch ist jetzt umbenannt (lokal und remote!)


Beachtung

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"

  1. navigieren Sie in Ihrem Projektverzeichnis
  2. kopiere die branch Datei von .git/refs/*/awe/some/
  3. gib es in .git/refs/head/ ein.
  4. kopiere die branch Datei von allen .git/refs/remotes/*/awe/some/
  5. gib sie in .git/refs/remotes/*/ ein.
  6. benennen Sie alle geöffneten branch Dateien in new-branch-name um.
  7. überprüfen Sie, ob die Verzeichnis- und Dateistruktur jetzt wie folgt aussieht:
    • .git/refs/head/new-branch-name
    • .git/refs/remotes/[all-remote-names]/new-branch-name
  8. machen Sie dasselbe auf allen Ihren Remote-Ursprüngen/Servern (falls vorhanden)
    • info: auf Remote-Servern gibt es normalerweise keine refs/remotes/* -Verzeichnisse, da Sie bereits auf Remote-Servern sind;) gesehen, dass)

Branch wird jetzt von awe/some/branch In new-branch-name Umbenannt (lokal und remote!)

Verzeichnisse im Filialnamen wurden entfernt.


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

0
Iyashi
  1. Download Atlassian SourceTree (kostenlos).
  2. Importieren Sie Ihren lokalen Klon des Repositorys.
  3. Klicken Sie in der Seitenleiste mit der rechten Maustaste auf den Zweig, den Sie umbenennen möchten. Wählen Sie im Kontextmenü "Zweig umbenennen ..." und benennen Sie ihn um.
  4. Push to Origin.
0
Engineer