Comment puis-je renommer un local Git branch?
Je ne veux pas renommer une branche distante, comme décrit dans Renommer branche master pour à la fois locaux et distants dépôts Git.
Comment puis-je renommer une section locale qui n'a pas été poussé à une branche distante?
Dans le cas où vous avez besoin de renommer distance branche ainsi:
Comment puis-je renommer à la fois un Git local et distant nom de la branche
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez renommer une branche et a souligné toute branche, n':
Si vous souhaitez renommer le actuelles de la direction générale, vous pouvez faire:
Un moyen de se rappeler, ce est
-m
est pour "déplacer" (oumv
), qui est de savoir comment renommer des fichiers.Si vous êtes sur Windows ou un autre de la casse du système de fichiers, et il y a tout de capitalisation changement de nom, vous devez utiliser
-M
, sinon, git va jeter branche existe déjà erreur:git push -f --mirror
, puis il va renommer le branche sur la télé, mais vous devez utiliser cette méthode uniquement si la distance est d'être simplement une copie de votre dépôt. Voir aussi cette question: stackoverflow.com/questions/1526794/git-rename-remote-branchpush.default
est configuré. Par défaut (matching
) il va le pousser à une distance dont le nom correspond. Que vous avez à fairegit push origin <newname>:<oldname>
ou vous allez créer une nouvelle branche à distance. Toutefois, sipush.default
est fixé àupstream
, alors vous pouvezpush origin head
et les choses vont aller à la oldname sur la télécommande.mv
pour renommer les fichiers. La raison pour cela est que le déplacement et renommage, dans un répertoire de base de l'inode du système de fichiers, sont tout à fait équivalent.-m
option est--move
, par exemple,git branch --move master
renomme la branche courante à être appelé "maître".git push origin :<old_name> <new_name>
de mettre à jour votre télécommande noms de branche.git push -f --mirror
. cela permettra également de pousser tous branches locales à distance, y compris toute taillées ramifiée. j'ai fait cela, et a poussé 30+ vieilles branches à distance...oups!git push -f --mirror
car il va littéralement "miroir" de votre région repo. Cela peut être bien si vous travaillez seul, mais si vous êtes de contribuer à une base de code avec une équipegit push -f --mirror
va supprimer les branches qui ne sont pas sur votre local.git push origin :old_branchname new_branchname
(voir Harry_pb la réponse ci-dessous).La commande ci-dessus va changer votre nom de la branche, mais vous devez être très prudent en utilisant le nouveau nom de la branche, car il va encore se référer à l'ancienne en amont de la branche sont associés, le cas échéant.
Si vous voulez pousser certains changements en master après votre succursale locale est renommé en new_branch_name (exemple de nom):
git push origin new_branch_name:master
(aujourd'hui les changements iront à la branche principale, mais à votre succursale locale nom est new_branch_name)Pour plus de détails, voir "Comment renommer votre succursale locale nom dans Git."
Pour renommer votre branche courante:
Voici les étapes à suivre pour renommer la branche:
git branch -m <new_name>
git push origin :<old_name>
git push origin <new_name>:refs/heads/<new_name>
MODIFIER (12/01/2017): assurez-vous d'exécuter la commande
git status
et vérifier que la branche nouvellement créée est pointant vers son propre arbitre et non l'ancienne. Si vous trouvez la référence à l'ancienne direction générale, vous devez désactiver l'amont à l'aide de:Renommer la direction générale sera utile une fois votre branche est fini. Puis de nouvelles choses est à venir, et que vous souhaitez développer dans la même branche au lieu de la supprimer et en créer un nouveau.
De mon expérience, pour renommer un local et à distance branche Git, vous devez effectuer les étapes suivantes.
1. Renommer votre succursale locale
Si vous êtes sur la branche que vous souhaitez renommer:
Si vous êtes sur une autre branche:
2. Supprimer l'ancien nom de la branche distante et poussez le nouveau nom de la succursale locale
3. Réinitialisation de l'amont de la branche pour le nouveau nom de la succursale locale
error: dst ref refs/heads/<old-name> receives from more than one src.; error: failed to push some refs to 'git@uri:foo/bar.git'
git push origin :old-name new-name
droit?Les réponses ont été corrects, mais voici quelques informations supplémentaires:
On peut en toute sécurité renommer une branche '-m' (déplacer), mais on doit être prudent avec '-M', parce qu'il force le renommer, même si il y a une branche avec le même nom existe déjà. Voici l'extrait de la 'git-direction générale de l' " homme de la page:
-M
drapeau est également utile de forcer un changement de nom si vous êtes juste de corriger le cas de le nom de la branche, par exemple, changement demyBranch
àMyBranch
. (Avec-m
, git retournefatal: A branch named 'MyBranch' already exists.
)1. Renommer
Si c'est votre branche courante, il suffit de faire
Si c'en est une autre branche que vous souhaitez renommer
2. La piste d'une nouvelle succursale à distance
- Si votre succursale a été poussé, puis après le changement de nom, vous devez le supprimer à partir de la télécommande dépôt Git et demandez à votre nouveau local pour suivre une nouvelle branche à distance:
J'ai bêtement nommé une branche en commençant par un tiret, puis vérifié maître. Je ne voulais pas supprimer ma branche, j'ai eu de travail.
Ni l'un ni l'travaillé:
git checkout -dumb-name
git checkout -- -dumb-name
"
s,'
s et\
s n'aide pas non plus.git branch -m
ne fonctionne pas.Voici comment j'ai enfin fixé. Allez dans votre copie de travail de l' .git/refs/heads, trouver le nom de fichier "-muet-nom", obtenir le hash de la branche. Puis ce sera le vérifier, créer une nouvelle branche avec une saine nom, et supprimer l'ancien.
reflog
Pour renommer une branche localement:
Maintenant, vous aurez à propager ces modifications sur votre serveur distant en tant que bien.
Pour envoyer les modifications de l'supprimé vieille branche:
Pour pousser les changements de la création de la nouvelle branche:
Renommer la branche à l'aide de cette commande:
-m
: Il renomme/déplace la branche. Si il y a déjà une succursale, vous obtiendrez une erreur.Si il y a déjà une branche et que vous souhaitez renommer avec cette branche, utilisation:
Pour plus d'informations sur l'aide, utilisez cette commande dans le terminal:
ou
Avancé Git les utilisateurs peuvent renommer manuellement à l'aide de:
Renommer branche:
Ici le nom long de l'
-m
option est--move
. Donc on peut aussi utiliser:Si vous souhaitez renommer la branche courante, puis utilisez ceci:
ou
Si vous souhaitez déplacer ces changements à la télécommande, puis utilisez la commande suivante.
Cela permettra de supprimer les
old_branchname
à distance de la branche et de pousser lenew_branchname
branche locale.Ceci permet de réinitialiser l'amont de la branche pour le
new_branchname
branche locale.Si vous êtes sur la branche que vous souhaitez renommer:
Si vous êtes sur une autre branche:
git push origin :old-name new-name
Passer à la branche et ensuite:
git push origin -u new-name
Ou pour un moyen rapide de le faire, vous pouvez utiliser ces 3 étapes:
# Renommer branche localement
# Supprimer l'ancienne branche distante
# Poussez la nouvelle direction générale, de définir la branche locale de suivre la nouvelle télécommande
Referance: https://www.w3docs.com/snippets/git/how-to-rename-git-local-and-remote-branches.html
Voici trois étapes: Une commande que vous pouvez appeler à l'intérieur de votre terminal et le changement de nom de la branche.
Si vous avez besoin de plus: l'étape-par-étape, Comment Changer Le Nom De La Branche Git est un bon article à ce sujet.
Probablement comme mentionné par d'autres, ce sera l'un des cas d'incompatibilité de la direction générale de nommage.
Si vous avez une telle situation, je peux deviner que vous êtes sur Windows qui vous mènera à:
Ensuite, vous devez faire une étape intermédiaire:
Rien de plus.
-M
au lieu de-m
pour faire ce genre de "boîtier fix" renommer en une seule étape.Essayer de répondre précisément à la question (au moins le titre).
Vous pouvez également renommer local branche, mais conserve le suivi de l'ancien nom sur la télécommande.
Maintenant, lorsque vous exécutez
git push
, la distanceold_branch
ref est mis à jour avec votre localnew_branch
.Vous devez connaître et de mémoriser cette configuration. Mais il peut être utile si vous n'avez pas le choix pour la télécommande nom de la branche, mais vous ne l'aimez pas (oh, je veux dire, vous avez un très bon raison de ne pas l'aimer !) et préférez un nom plus clair pour vous à votre succursale locale.
Jouer avec l'extraction de configuration, vous pouvez même renommer les locaux à distance de référence. j'.e, ayant une
refs/remote/origin/new_branch
ref pointeur de la direction générale, qui est en fait laold_branch
surorigin
. Cependant, j'ai fortement décourager ce, pour la sécurité de votre esprit.Seulement deux étapes pour reproduire un changement de nom sur
remote
ainsi que sur GitHub:Étape 1
git branch -m old_branchname new_branchname
Étape 2
git push origin :old_branchname new_branchname
git push --set-upstream origin new_branchname
qui est mentionné dans @Nomade répondreSi vous êtes prêt à utiliser SourceTree (ce que je recommande fortement), vous pouvez faire un clic droit de votre direction générale et choisis "Renommer'.
Pour renommer la branche courante (sauf pour détacher la TÊTE de l'etat), vous pouvez également utiliser cet alias:
La modification de la direction de la localement est très facile...
Si vous êtes sur la branche que vous voulez changer le nom, il suffit de faire ceci:
Sinon, si vous êtes sur
master
ou n'importe quelle autre branche autre que celui que vous voulez changer le nom, il suffit de faire:Aussi, j'ai créer l'image ci-dessous pour montrer en action sur un ligne de commande. Dans ce cas, vous êtes sur
master
branche, par exemple:Une autre option est de ne pas utiliser la ligne de commande à tous. Git GUI pour des clients tels que SourceTree emporter une grande partie de la syntaxe de la courbe d'apprentissage /de la douleur que provoque des questions comme celui-ci pour être parmi les plus visionnées sur un Débordement de Pile.
Dans SourceTree, cliquez-droit sur n'importe quel branche locale dans les "Branches" sur le volet de gauche et sélectionnez "Renommer ...".
Puisque vous ne voulez pas à pousser la direction à un serveur distant, cet exemple sera utile:
Disons que vous avez une branche appelée "ma-chaud-fonction," et que vous souhaitez renommer en "fonction-15."
Tout d'abord, vous voulez changer votre succursale locale. Ce ne pouvait pas être plus facile:
Pour plus d'informations, vous pouvez visiter Localement et à Distance de Renommer une Branche Git.
Git version 2.9.2
Si vous souhaitez modifier le nom de la branche locale vous êtes sur:
Si vous souhaitez modifier le nom d'une autre branche:
Si vous souhaitez modifier le nom d'une autre branche à un nom qui existe déjà:
Remarque: La dernière commande est destructeur et renommer votre branche, mais vous perdrez la vieille branche de ce nom et ceux s'engage parce que les noms de branche doit être unique.
Une façon simple de le faire:
Pour en savoir plus, voir cette.
Si vous souhaitez modifier le nom de la branche courante, exécutez:
Si vous souhaitez supprimer l'ancienne branche distante, exécuter:
Si vous souhaitez supprimer l'ancienne branche à distance et de créer une nouvelle branche à distance, exécutez:
Pour Git GUI pour les utilisateurs, il ne pouvait pas être beaucoup plus simple.
Dans Git GUI, choisissez le nom de la branche à partir de la liste déroulante de la "Renommer la Branche" de la boîte de dialogue créé à partir de l'élément de menu de la Direction de la Renommer, tapez un Nouveau Nom et cliquez sur "Renommer". J'ai mis en évidence où trouver la liste déroulante.
ou
Git branch renommer peut être fait en utilisant:
git branch -m oldBranch newBranch
git branch -M oldBranch ExistingBranch
La différence entre -m et -M:
-m: si vous essayez de renommer votre branche avec une branche de nom à l'aide de -m.
Il déclenche un message d'erreur indiquant que le service existe déjà. Vous devez donner un nom unique.
Mais,
-M: cela vous aidera à force de le renommer avec un nom donné, même s'il existe. Si une branche va remplacer entièrement avec elle...
Ici est un Git exemple dans un terminal,
Toutes les réponses précédentes sont parler
git branch -m
. Bien sûr, il est facile à utiliser, mais pour moi, c'est peut être un peu difficile de vous rappeler une autre commande Git. J'ai donc essayé d'obtenir le travail fait par la commande que je connaissais. Oui, vous pouvez vous l'aurez deviné.- Je utiliser
git branch -b <new_branch_name>
. Et si vous ne voulez pas enregistrer la vieille branche maintenant vous pouvez exécutergit branch -D <old_branch_name>
pour l'enlever.Je sais que cela peut être un peu fastidieux, mais c'est plus facile à comprendre et à mémoriser. J'espère que c'est utile pour vous.
Si vous voulez:
git branch -m <oldname> <newname>
git push origin: old-name new-name
git commit <newname>
git push origin new_branch_name:master
git status
git checkout
Dans PhpStorm:
VCS → Git → Branches... → Branches Locales → _your_branch_ → Renommer
-m bouger tous à partir de [vieux-direction] à [nouvelle-direction] et rappelez-vous que vous utilisez l'option-M pour les autres systèmes de fichiers.