Renommer une branche en github

je viens de renommer ma branche locale en utilisant

git branch -m oldname newname

mais ceci ne renomme que la version locale de la branche. Comment puis-je renommer celui de github ?

218
demandé sur studgeek 2012-03-02 02:07:26

11 réponses

comme mentionné, supprimer l'ancien sur Github & re-push, bien que les commandes utilisées sont un peu plus verbeux que nécessaire:

git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local

Simple. Disséquant un peu les commandes, la commande git push est essentiellement:

git push <remote> <local_branch>:<remote_branch>

donc faire une poussée sans spécifier local_branch signifie essentiellement"ne rien prendre de mon dépôt local, et en faire la branche distante". J'ai toujours pensé que cela est complètement encombrants, mais c'est la façon dont c'est fait.

Edit: Que de Git 1.7 il existe une autre syntaxe pour la suppression d'une branche distante:

git push origin --delete name_of_the_remote_branch

Edit: comme mentionné par @void.pointeur dans les commentaires

notez que vous pouvez combiner les 2 opérations de poussée:

git push origin :old_branch new_branch

cela supprimera à la fois l'ancien branche et pousse le nouveau.

cela peut être transformé en un simple alias qui prend le nom de la branche distante, originale et nouvelle comme argument, dans ~/.gitconfig :

[alias]
    branchm = "!git branch -m   && git push  :  -u #"

Utilisation:

git branchm origin old_branch new_branch

notez que les arguments de position dans les commandes shell étaient problématiques dans les anciennes (pré 2.8?) versions de git, donc l'alias peut varier selon la version de git. Voir cette discussion pour plus de détails.

245
répondu Adam Parkin 2018-02-14 23:40:52

il suffit de supprimer l'ancienne branche et d'en créer une nouvelle.

exemple (renommer uniquement la branche distante):

git push origin :refs/heads/oldname
git push origin newname:refs/heads/newname

vous devriez aussi probablement renommer la branche locale et changer les paramètres pour l'endroit où pousser/tirer.

13
répondu Vi. 2012-03-01 22:54:14

les commandes suivantes ont fonctionné pour moi:

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
11
répondu Taimoor Changaiz 2015-05-04 11:46:10

j'ai trouvé 3 commandes comment vous pouvez changer le nom de votre branche git, et ces commandes sont un moyen plus rapide de le faire

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

si vous avez besoin étape par étape, vous pouvez lire ce grand article

Comment Renommer Git Local et à Distance Branches

8
répondu Hazarapet Tunanyan 2016-05-10 18:07:51

vous pouvez faire cela sans terminal, vous avez juste besoin de créer une branche avec le nouveau nom, et supprimer l'Ancien après. Vous pouvez utiliser ce post pour le faire.

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

3
répondu rneves 2015-08-19 14:41:51

voici ce qui a fonctionné pour moi:

1.) Créer la nouvelle branche d'abord: git push GitHub newname: refs / heads /newname

2.) Sur le site github, allez dans Paramètres et changez la branche par défaut en newname

3.) Supprimer la oldname git push GitHub -- supprimer oldname

1
répondu Wiley 2015-06-04 07:10:15
  1. Télécharger Atlassian SourceTree (gratuit).
  2. Importez votre clone local du dépôt.
  3. faites un clic droit sur votre branche pour la renommer, dans la barre latérale. Sélectionnez " Renommer la branche..."à partir du menu contextuel, et de le renommer.
  4. Pousser à l'origine.
1
répondu Arcane Engineer 2015-08-25 20:45:46

cet article montre comment le faire très facilement.

1. Pour renommer une branche Git locale, nous pouvons utiliser la commande git branch-m pour modifier le nom:

git branch -m feature1 feature2

2. Si vous cherchez juste la commande pour renommer une branche distante de Git, c'est ici"

git push -u origin feature2:feature3

vérifiez que vous n'avez pas d'étiquette sur la branche avant de faire ceci. Vous pouvez le faire avec git tag .

1
répondu Daniel Kobe 2015-11-15 03:34:03

Dans mon cas, j'avais besoin d'une commande supplémentaire

git branch --unset-upstream

pour obtenir ma branche renommée de pousser jusqu'à origin newname .

(pour la facilité de Dactylographie), i premier git checkout oldname .

Ensuite, lancez la commande suivante:

git branch -m newname

git push origin :oldname ou git push origin --delete oldname

git branch --unset-upstream

git push -u origin newname ou git push origin newname

cette étape supplémentaire peut n'être nécessaire que parce que je (ai tendance à) configurer le suivi à distance sur mes branches via git push -u origin oldname . De cette façon, lorsque j'ai vérifié oldname , Je n'ai plus besoin que de taper git push plutôt que git push origin oldname

si je fais pas utilisez la commande git branch --unset-upstream avant git push origin newbranch , git re-creates oldbranch et pushes newbranch à origin oldbranch -- défaire mon intention.

1
répondu SherylHohman 2017-06-03 05:56:08

une autre façon est de renommer les fichiers suivants :

  1. accédez à votre répertoire de projet
  2. renommer .git/refs/head/[branch-name] en .git/refs/head/new-branch-name
  3. renommer .git/refs/remotes/[all-remote-names]/[branch-name] en .git/refs/remotes/[all-remote-names]/new-branch-name

Renommer tête & télécommandes à la fois sur votre PC local et sur les origines(s)/serveur distant(s)

La branche

est maintenant renommée (locale et distante!)


Attention

si votre nom de branche actuel contient des slashes ( / ) git va créer les répertoires comme ceci:

actuelles de la direction générale-name: "awe/some/branch"

  • .git/refs/head/awe/some/branch
  • .git/refs/remotes/[all-remote-names]/awe/some/branch

souhaitez branche-name: "new-branch-name"

  1. accédez à votre répertoire de projet
  2. Copiez le fichier branch de .git/refs/*/awe/some/
  3. mettez-le dans .git/refs/head/ .
  4. copier le fichier branch de tous les fichiers .git/refs/remotes/*/awe/some/
  5. mettez-les dans .git/refs/remotes/*/ .
  6. renommer tous les fichiers opied branch en new-branch-name .
  7. vérifiez si la structure du répertoire et du fichier ressemble maintenant à ceci:
    • .git/refs/head/new-branch-name
    • .git/refs/remotes/[all-remote-names]/new-branch-name
  8. faites la même chose sur tous vos serveurs/origines distants (s'il existe)
    • info : sur les serveurs distants il n'y a généralement pas de répertoires refs/remotes/* parce que vous êtes déjà sur le serveur distant;) (bien peut-être dans avancé git configurations, il pourrait être possible, mais je n'ai jamais vu ça)

branche est maintenant renommée de awe/some/branch à new-branch-name (local et à distance!)

Les répertoires

dans branch-name ont été supprimés.


Info: cette façon pourrait ne pas être la meilleure, mais il fonctionne toujours pour les gens qui pourraient avoir des problèmes avec les autres moyens

0
répondu Iyashi 2016-08-10 14:16:00

les commandes suivantes renomment la branche localement, suppriment l'ancienne branche sur la position distante et poussent la nouvelle branche, positionnant la branche locale pour suivre la nouvelle télécommande:

git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
0
répondu Pooja Mane 2018-03-15 12:33:31