Je viens de renommer ma succursale locale en utilisant
git branch -m oldname newname
mais cela ne renomme que la version locale de la branche. Comment puis-je renommer celui sur GitHub?
Je viens de renommer ma succursale locale en utilisant
git branch -m oldname newname
mais cela ne renomme que la version locale de la branche. Comment puis-je renommer celui sur GitHub?
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:
git push origin :name_of_the_old_branch_on_github
git push origin new_name_of_the_branch_that_is_local
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:
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 à la fois l'ancienne branche et poussera la nouvelle.
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
:
[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 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.
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é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.
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 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-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):
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 pour savoir où pousser / tirer.
git push origin newname:refs/heads/newname
? master et newname peuvent ne pas pointer vers le même commit.
1. Renommez votre succursale locale.
Si vous êtes sur la branche que vous souhaitez renommer:
git branch -m new-name
Si vous êtes dans une autre branche:
git branch -m old-name new-name
2. Supprimez l'ancienne branche distante et appuyez sur la nouvelle branche locale.
git push origin :old-name new-name
3. Réinitialisez la branche amont pour la branche locale de nouveau nom.
Passez à la succursale puis:
git push origin -u new-name
Donc, la conclusion est
git branch -m new-name
git push origin :old-name new-name
git push origin -u new-name
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.
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
.
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
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 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
(locale et distante!)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
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 quegit push
-u
origin oldname
oldname
git push
git push origin oldname
Si je n'utilise PAS la commande git branch --unset-upstream
avant git push origin newbranch
, git recrée oldbranch
et pousse newbranch
pour origin oldbranch
- vaincre mon intention.
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:
git branch -m old_branch new_branch
git push origin :old_branch
git push --set-upstream origin new_branch
C'est aussi simple que ça . Afin de renommer git branch localement et à distance, utilisez cet extrait (testé et fonctionne comme un charme):
git branch -m <oldBranchName> <newBranchName>
git push origin :<oldBranchName>
git push --set-upstream origin <newBranchName>
Explication:
Renommer l'étape:
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].
tête d'origine push git
git branch -m old-branch-name nouveau-branch-name
tête d'origine push git
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