Renommer une branche en github
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.
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.
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
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
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.
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
- Télécharger Atlassian SourceTree (gratuit).
- Importez votre clone local du dépôt.
- 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.
- Pousser à l'origine.
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
.
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.
une autre façon est de renommer les fichiers suivants :
- accédez à votre répertoire de projet
- renommer
.git/refs/head/[branch-name]
en.git/refs/head/new-branch-name
- 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 brancheest 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"
- accédez à votre répertoire de projet
- Copiez le fichier
branch
de.git/refs/*/awe/some/
- mettez-le dans
.git/refs/head/
. - copier le fichier
branch
de tous les fichiers.git/refs/remotes/*/awe/some/
- mettez-les dans
.git/refs/remotes/*/
. - renommer tous les fichiers opied
branch
ennew-branch-name
. - 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
-
- 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
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