Je viens de renommer ma branche locale en utilisant
git branch -m oldname newname
mais cela ne fait que renommer la version locale de la branche. Comment puis-je renommer celui en github?
Comme mentionné, supprimez l'ancien sur Github & re-Push, bien que les commandes utilisées soient un peu plus détaillées que nécessaire:
git Push Origin :name_of_the_old_branch_on_github
git Push Origin new_name_of_the_branch_that_is_local
Facile. En disséquant un peu les commandes, la commande git Push est essentiellement:
git Push <remote> <local_branch>:<remote_branch>
Donc, faire un Push sans local_branch spécifié signifie essentiellement "ne rien prendre de mon référentiel local, et en faire la branche distante". J'ai toujours pensé que c'était complètement compliqué, mais c'est comme ça que ça se passe.
Edit: À partir de Git 1.7 il existe une autre syntaxe pour supprimer une branche distante:
git Push Origin --delete name_of_the_remote_branch
Edit: Comme mentionné par @ void.pointer dans les commentaires
Notez que vous pouvez combiner les 2 opérations Push:
git Push Origin :old_branch new_branch
Cela supprimera l’ancienne branche et poussera la nouvelle.
Cela peut être transformé en un simple alias qui prend comme arguments la branche d'origine, la branche d'origine et le nouveau nom de la branche, dans ~/.gitconfig
:
[alias]
branchm = "!git branch -m $2 $3 && git Push $1 :$2 $3 -u #"
Usage:
git branchm Origin old_branch new_branch
Notez que les arguments de position dans les commandes de Shell posaient problème dans les versions antérieures (antérieures à 2.8?) De git, de sorte que l'alias pouvait varier en fonction de la version de git. Voir cette discussion pour plus de détails.
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
Supprimez simplement l'ancienne branche et créez-en une nouvelle.
Exemple (renommer uniquement la branche distante):
git Push Origin :refs/heads/oldname
git Push Origin newname:refs/heads/newname
Vous devriez également probablement renommer la branche locale et modifier les paramètres de l'endroit où pousser/tirer.
J'ai trouvé la commande 3 comment 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 cet excellent article.
Vous pouvez le faire sans terminal, il vous suffit de créer une branche avec le nouveau nom et de supprimer l’ancien. Vous pouvez utiliser ce post pour le faire.
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 recherchez simplement la commande pour renommer une branche Git distante, c’est le bon "git Push -u Origin feature2:feature3
Vérifiez que vous n’avez pas de tags sur la branche avant de le faire. Vous pouvez le faire avec git tag
.
Dans mon cas, j'avais besoin d'une commande supplémentairegit branch --unset-upstream
pour que ma branche renommée devienne Push up to _Origin newname
_.
(Pour faciliter la saisie), je commence par _git checkout oldname
_.
Puis exécutez ce qui suit:
_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 être nécessaire uniquement parce que j’ai (tendance à) configurer le suivi à distance sur mes succursales via _git Push
_ -u
_Origin oldname
_. Ainsi, lorsque oldname
a été extrait, il ne me faut plus que le type _git Push
_ plutôt que _git Push Origin oldname
_
Si je le fais NOT, utilisez la commande _git branch --unset-upstream
_ avant _git Push Origin newbranch
_, git recrée oldbranch
et pousse newbranch
à _Origin oldbranch
_ - annule mon intention.
Voici ce qui a fonctionné pour moi:
1.) Créez d'abord la nouvelle branche: git Push github newname: refs/heads/newname
2.) Sur le site github, allez dans les paramètres et changez la branche par défaut en nouveau nom
3.) Supprimez le nom ancien git Push github --delete oldname
Les commandes suivantes renomment localement la branche, suppriment l'ancienne branche sur l'emplacement distant et poussent la nouvelle branche en configurant la branche locale pour suivre la nouvelle distante:
git branch -m old_branch new_branch
git Push Origin :old_branch
git Push --set-upstream Origin new_branch
Une autre méthode consiste à renommer les fichiers suivants:
.git/refs/head/[branch-name]
en .git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/[branch-name]
en .git/refs/remotes/[all-remote-names]/new-branch-name
Renommez têtes & télécommandes à la fois sur votre PC local et sur sur les origines/le serveur distant
Si votre nom de branche actuel contient des barres obliques (/
), git créera les répertoires comme suit:
nom de la branche actuelle:"awe/some/branch"
.git/refs/head/awe/some/branch
.git/refs/remotes/[all-remote-names]/awe/some/branch
nom de la branche souhaitée:"new-branch-name"
branch
de .git/refs/*/awe/some/
.git/refs/head/
.branch
de tous les .git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
opérés en new-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
awe/some/branch
à new-branch-name
(local et distant!).Info: Cette méthode n'est peut-être pas la meilleure, mais elle fonctionne toujours pour les utilisateurs qui pourrait avoir des problèmes avec les autres moyens