web-dev-qa-db-fra.com

Renommer une branche dans github

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?

247
enchance

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.

273
Adam Parkin

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
14

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.

13
Vi.

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.

Comment renommer des branches Git locales et distantes

11

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.

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

3
rneves

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.

1
Daniel Kobe

Dans mon cas, j'avais besoin d'une commande supplémentaire
git 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.

1
SherylHohman

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

1
Wiley

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

Une autre méthode consiste à renommer les fichiers suivants:

  1. naviguez dans 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

Renommez têtes & télécommandes à la fois sur votre PC local et sur sur les origines/le serveur distant

Branch est maintenant renommé (local et distant!)


Attention

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"

  1. naviguez dans votre répertoire de projet
  2. copier le fichier branch de .git/refs/*/awe/some/
  3. mettez-le dans .git/refs/head/.
  4. copier le fichier branch de tous les .git/refs/remotes/*/awe/some/
  5. mettez-les dans .git/refs/remotes/*/.
  6. renommez tous les fichiers branch opérés en new-branch-name.
  7. vérifiez si la structure des répertoires et des fichiers ressemble maintenant à ceci:
    • .git/refs/head/new-branch-name
    • .git/refs/remotes/[all-remote-names]/new-branch-name
  8. faites de même sur tous vos serveurs/origines distants (le cas échéant)
    • info: sur les serveurs distants, il n'y a généralement pas de répertoires refs/remotes/* car vous êtes déjà sur le serveur distant;) Vu que)

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

Les répertoires de nom de branche ont été supprimés.


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

0
Iyashi
  1. Téléchargez Atlassian SourceTree (gratuit).
  2. Importez votre clone local du référentiel.
  3. Cliquez avec le bouton droit sur votre branche à renommer, dans la barre latérale. Sélectionnez "Renommer la branche ..." dans le menu contextuel et renommez-le.
  4. Pousser à l'origine.
0
Engineer