Avez-vous vérifié les paramètres d'administration? Mon projet actuel sur github n'a pas de branches mais vous pouvez renommer le référentiel là-bas, donc je pense que vous pourriez également renommer des branches.
evanmcdonnal
12
@evanmcdonnal Non, vous ne pouvez pas renommer une branche Git à partir du site GitHub.
Andrew Marshall
Les réponses à cette question sont presque universellement erronées. La question n'est pas de savoir comment renommer une branche git, c'est comment renommer une branche github . Beaucoup de choses sur github sont liées à une branche, ce qui signifie que toute réponse doit couvrir ces choses. Par exemple, renommer master en main
gman
@gman Pour ce que ça vaut, il semble que ces réponses répondent à l'esprit de la question du PO. La question du PO n'a peut-être pas été parfaitement formulée, d'un point de vue technique exigeant, ou la question pertinente que vous examinez actuellement. Mais alors, cette question ne vient pas d'un fond technique profond de git ou GitHub. Dans cette perspective, on peut considérer cela comme une question "débutante" ou élémentaire. En tant que tel, il est formulé et répondu de manière appropriée pour ce public. Frustrant, bien sûr, mais je pense que ce Q, ces réponses sont appropriées / pertinentes, en particulier pour les Q avant l'utilisation de BLM git / Hub.
SherylHohman
Réponses:
309
Comme mentionné, supprimez l'ancien sur Github et repoussez, bien que les commandes utilisées soient un peu plus verbeuses que nécessaire:
Facile. 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 dépôt 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:
Notez que les arguments positionnels dans les commandes shell étaient problématiques dans les anciennes versions (antérieures à 2.8?) De git, donc l'alias peut varier selon la version de git. Voir cette discussion pour plus de détails.
Notez que vous pouvez combiner les 2 opérations de poussée: git push origin :old_branch new_branch. Cela supprimera à la fois l'ancienne branche et poussera la nouvelle.
void.pointer
4
Y a-t-il une raison pour laquelle la nouvelle branche ne peut pas être poussée avant de supprimer l'ancienne? Personnellement, je préfère les processus où l'opération de suppression se produit après la réussite de l'opération de création, juste au cas où quelque chose se passe mal.
jmort253
7
Ne marche pas. Il remettra simplement la branche sur Github avec son ancien nom.
geoff
1
@AdamParkin 1. git branch -m new_branch(renommer old_branch en new_branch) 2. git commit -m 'msg', 3. git push4. Mhmm, old_branch apparaît dans Github, question Google et je suis amené à votre réponse 5. git push origin :old_branch(dit qu'il a été supprimé) 6. git push origin new_branch... complète puis dit * [new branch] new_branch -> old_branch. Retournez à Github et réapparaissez old_branch. Si je supprime dans l'interface utilisateur Web de Github, j'ai la possibilité de "Restaurer", il semble donc que pousser le new_branch est simplement en train de restaurer.
Kcvin
2
Une chose à savoir est que lorsque vous renommez la branche, toutes les demandes d'extraction que vous avez ouvertes par rapport à cette demande d'extraction seront automatiquement fermées. Nous avons dû renommer la branche en arrière, puis rouvrir manuellement toutes les demandes d'extraction ....
C'est la brève réponse qui fonctionne. BTW, la première commande pourrait également être mise comme dernière dans la réponse.
Eric Wang
cette réponse couvre git not github
gman
1
En fait, je viens de le faire deux fois et cela a fonctionné sur github.
spozun
17
J'ai trouvé 3 commandes pour 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
git push --set-upstreamest la partie la plus importante si vous changez le nom de la branche localement à l'aide de l'application github avant de supprimer la branche distante.
Louis Yang
cette réponse couvre git not github
gman
12
Supprimez simplement l'ancienne branche et créez-en une nouvelle.
Exemple (renommer uniquement la branche distante):
C'est pour git et GitHub est sous git donc ça va marcher et ça marche avec moi et avec les autres
Abdelrahman Mohamed
Ça ne marche pas. Essayez les première et deuxième étapes git branch -m new-name && git push origin :master new-name. Cela échouera. Si cette réponse ne concerne que git et non github, cette question est un double de plusieurs autres questions et doit être fermée. S'il s'agit vraiment de github, la réponse doit couvrir github. Cette réponse n'est pas.
gman
6
Vous pouvez le faire sans terminal, il vous suffit de créer une branche avec le nouveau nom et de supprimer l'ancien après. Vous pouvez utiliser ce message pour le faire.
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.
Merci, mais j'ai dû passer à la succursale et l'importer.
Flash Sheridan
1
cette réponse couvre git not github
gman
0
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 simplement la commande pour renommer une branche Git distante, c'est celle-ci "
git push -u origin feature2:feature3 Vérifiez que vous n'avez pas avant de faire cela. Vous pouvez le faire avec git tag.
faites de même sur tous vos origines / serveurs 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 un serveur distant;) (enfin peut-être que dans les configurations avancées de git, cela pourrait être possible, mais je ne l'ai jamais vu)
La branche est maintenant renommée de awe/some/branchà new-branch-name(locale et distante!)
Les répertoires du nom de la branche ont été supprimés.
Info: Cette méthode n'est peut-être pas la meilleure, mais elle fonctionne toujours pour les personnes qui pourraient avoir des problèmes avec les autres méthodes
Cette étape supplémentaire peut être nécessaire uniquement parce que j'ai (tendance à) configurer le suivi à distance sur mes succursales via . De cette façon, après avoir vérifié, je n'ai ensuite besoin que de type plutôt quegit push-uorigin oldnameoldnamegit pushgit push origin oldname
Si je n'utilise PAS la commande git branch --unset-upstreamavant git push origin newbranch, git recréeoldbranch et pousse newbranchpour origin oldbranch- vaincre mon intention.
@gman Point pris. Ma solution utilise git localement pour renommer une branche sur GitHub, à distance, après l'avoir renommée sur la copie git locale du référentiel GitHub. Donc, peut-être que cela pourrait être considéré comme une solution spécialisée, lorsque vous souhaitez utiliser la ligne de commande, plutôt que l'interface du site Web GitHub, et que vous disposez d'un clone local que vous souhaitez également mettre à jour. Merci d'avoir souligné cette distinction et d'avoir précisé que cette réponse est pour un cas particulier, plutôt qu'une solution générale.
SherylHohman
Le problème est que github lie les fonctionnalités aux branches. Essayez de renommer master en main et vos instructions échoueront.
gman
-1
Les commandes suivantes renomment la branche localement, supprimez l'ancienne branche sur l'emplacement distant et appuyez sur la nouvelle branche, en définissant la branche locale pour suivre la nouvelle télécommande:
Bien que votre extrait de code puisse résoudre le problème, vous devez décrire le but de votre code (comment il résout le problème). En outre, vous voudrez peut-être vérifier stackoverflow.com/help/how-to-answer
Ahmad F
cette réponse couvre git not github
gman
-1
C'est aussi simple que ça . Afin de renommer git branch localement et à distance, utilisez cet extrait (testé et fonctionne comme un charme):
Référence Git:
avec une option -m ou -M , sera renommé en. S'il y avait un reflog correspondant, il est renommé pour correspondre et une entrée de reflog est créée pour se souvenir du changement de nom de la branche. S'il existe, -M doit être utilisé pour forcer le changement de nom.
Étape de suppression:
Référence Git:
git push origin: experimental Recherchez une référence qui correspond à experimental dans le référentiel d'origine (par exemple, refs / heads / experimental) et supprimez-la.
Mise à jour sur l'étape de dépôt à distance (référence en amont pour le suivi):
Référence Git:
--set-upstream Pour chaque branche qui est à jour ou poussée avec succès, ajoutez une référence en amont (tracking), utilisée par git-pull sans argument [1] et d'autres commandes. Pour plus d'informations, consultez branch..merge dans git-config [1].
Sur la branche git, exécutez git branch -m old_name new_name Ceci modifiera le nom de la branche sur votre origine repo git push origin: old_name new_name Cela poussera le nom modifié à distance et supprimera l'ancienne branche git push origin -u new_name Définit la branche locale à suivre branche distante. Cela résout le problème
Réponses:
Comme mentionné, supprimez l'ancien sur Github et repoussez, bien que les commandes utilisées soient un peu plus verbeuses que nécessaire:
Facile. Disséquant un peu les commandes, la commande git push est essentiellement:
Donc, faire un push sans local_branch spécifié signifie essentiellement "ne rien prendre de mon dépôt 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:
Edit: Comme mentionné par @ void.pointer dans les commentaires
Cela peut être transformé en un alias simple qui prend la branche distante d'origine et le nouveau nom de branche comme arguments, dans
~/.gitconfig
:Usage:
Notez que les arguments positionnels dans les commandes shell étaient problématiques dans les anciennes versions (antérieures à 2.8?) De git, donc l'alias peut varier selon la version de git. Voir cette discussion pour plus de détails.
la source
git push origin :old_branch new_branch
. Cela supprimera à la fois l'ancienne branche et poussera la nouvelle.git branch -m new_branch
(renommer old_branch en new_branch) 2.git commit -m 'msg'
, 3.git push
4. Mhmm, old_branch apparaît dans Github, question Google et je suis amené à votre réponse 5.git push origin :old_branch
(dit qu'il a été supprimé) 6.git push origin new_branch
... complète puis dit* [new branch] new_branch -> old_branch
. Retournez à Github et réapparaissezold_branch
. Si je supprime dans l'interface utilisateur Web de Github, j'ai la possibilité de "Restaurer", il semble donc que pousser le new_branch est simplement en train de restaurer.Les commandes suivantes ont fonctionné pour moi:
la source
J'ai trouvé 3 commandes pour changer le nom de votre branche git, et ces commandes sont un moyen plus rapide de le faire
Si vous avez besoin étape par étape, vous pouvez lire cet excellent article
Comment renommer les branches locales et distantes Git
la source
git push --set-upstream
est la partie la plus importante si vous changez le nom de la branche localement à l'aide de l'application github avant de supprimer la branche distante.Supprimez simplement l'ancienne branche et créez-en une nouvelle.
Exemple (renommer uniquement la branche distante):
Vous devriez également probablement renommer la branche locale et modifier les paramètres pour savoir où pousser / tirer.
la source
git push origin newname:refs/heads/newname
? master et newname peuvent ne pas pointer vers le même commit.Renommer les branches dans git local et distant
1. Renommez votre succursale locale.
Si vous êtes sur la branche que vous souhaitez renommer:
Si vous êtes dans une autre branche:
2. Supprimez l'ancienne branche distante et appuyez sur la nouvelle branche locale.
3. Réinitialisez la branche amont pour la branche locale de nouveau nom.
Passez à la succursale puis:
Donc, la conclusion est
la source
git branch -m new-name && git push origin :master new-name
. Cela échouera. Si cette réponse ne concerne que git et non github, cette question est un double de plusieurs autres questions et doit être fermée. S'il s'agit vraiment de github, la réponse doit couvrir github. Cette réponse n'est pas.Vous pouvez le faire sans terminal, il vous suffit de créer une branche avec le nouveau nom et de supprimer l'ancien après. Vous pouvez utiliser ce message pour le faire.
https://github.com/blog/1377-create-and-delete-branches
la source
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 newname
3.) Supprimer l'ancien git push github --delete oldname
la source
la source
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 simplement la commande pour renommer une branche Git distante, c'est celle-ci "
git push -u origin feature2:feature3
Vérifiez que vous n'avez pas avant de faire cela. Vous pouvez le faire avec
git tag
.la source
Une autre façon 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 head & remotes à la fois sur votre PC local et sur les origines / serveurs distants
La branche est maintenant renommée (locale et distante!)
Attention
Si votre nom de branche actuel contient des barres obliques (
/
), git créera les répertoires comme ceci: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
fichier depuis.git/refs/*/awe/some/
.git/refs/head/
.branch
fichier de tous.git/refs/remotes/*/awe/some/
.git/refs/remotes/*/
.branch
fichiers opiés ennew-branch-name
..git/refs/head/new-branch-name
.git/refs/remotes/[all-remote-names]/new-branch-name
La branche est maintenant renommée de
awe/some/branch
ànew-branch-name
(locale et distante!)Les répertoires du nom de la branche ont été supprimés.
Info: Cette méthode n'est peut-être pas la meilleure, mais elle fonctionne toujours pour les personnes qui pourraient avoir des problèmes avec les autres méthodes
la source
Dans mon cas, j'avais besoin d'une commande supplémentaire pour obtenir ma branche renommée .
git branch --unset-upstream
origin newname
(Pour faciliter la frappe), j'ai d'abord
git checkout oldname
.Exécutez ensuite ce qui suit:
git branch -m newname
git push origin :oldname
ou ougit push origin --delete oldname
git branch --unset-upstream
git push -u origin newname
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 . De cette façon, après avoir vérifié, je n'ai ensuite besoin que de type plutôt que
git push
-u
origin oldname
oldname
git push
git push origin oldname
Si je n'utilise PAS la commande
git branch --unset-upstream
avantgit push origin newbranch
, git recréeoldbranch
et poussenewbranch
pourorigin oldbranch
- vaincre mon intention.la source
Les commandes suivantes renomment la branche localement, supprimez l'ancienne branche sur l'emplacement distant et appuyez sur la nouvelle branche, en définissant la branche locale pour suivre la nouvelle télécommande:
la source
C'est aussi simple que ça . Afin de renommer git branch localement et à distance, utilisez cet extrait (testé et fonctionne comme un charme):
Explication:
Renommer l'étape:
Étape de suppression:
Mise à jour sur l'étape de dépôt à distance (référence en amont pour le suivi):
la source
3 étapes simples
tête d'origine push git
git branch -m old-branch-name nouveau-branch-name
tête d'origine push git
la source
Sur la branche git, exécutez git branch -m old_name new_name Ceci modifiera le nom de la branche sur votre origine repo git push origin: old_name new_name Cela poussera le nom modifié à distance et supprimera l'ancienne branche git push origin -u new_name Définit la branche locale à suivre branche distante. Cela résout le problème
la source