J'ai quatre branches comme master -> origin / regacy, FeatureA -> origin / FeatureA. Comme vous pouvez le voir, j'ai tapé le mauvais nom.
Je veux donc renommer un nom de branche distante (origine / regacy → origine / legacy ou origine / master)
J'essaye la commande ci-dessous:
git remote rename regacy legacy
Mais la console Git m'a renvoyé un message d'erreur.
error : Could not rename config section 'remote.regacy' to 'remote.legacy'
Comment puis-je résoudre ce problème?
Réponses:
Il existe plusieurs façons d'y parvenir:
Renommer local et distant
Renommer uniquement la branche distante
Crédits : ptim
Note importante:
Lorsque vous utilisez le
git branch -m
(déplacer), Git met également à jour votre branche de suivi avec le nouveau nom.git remote rename
tente de mettre à jour votre section distante dans votre fichier de configuration. Il renommera la télécommande avec le nom donné en nouveau nom, mais dans votre cas, il n'en a pas trouvé, donc le changement de nom a échoué.Mais il ne fera pas ce que vous pensez; il renommera le nom distant de votre configuration locale et non la branche distante.
Remarque Les serveurs Git peuvent vous permettre de renommer les branches Git en utilisant l'interface Web ou des programmes externes (comme Sourcetree, etc.), mais vous devez garder à l'esprit que dans Git tout le travail est effectué localement, il est donc recommandé d'utiliser les commandes ci-dessus au travail.
la source
Your configuration specifies to merge with the ref ''refs/heads/old_name'
git checkout <new_name> ; git branch --unset-upstream
--unset-upstream
avant de repousser, cela fonctionne comme prévu.Si vous avez nommé une branche de manière incorrecte ET que vous avez poussé cela vers le référentiel distant, procédez comme suit pour renommer cette branche (en fonction de cet article ):
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
Supprimez la
old-name
branche distante et appuyez sur lanew-name
branche locale :git push origin :old-name new-name
Réinitialisez la branche en amont pour la nouvelle branche locale :
passez à la branche, puis:
git push origin -u new-name
la source
git push <remote> --delete old_name
&git push origin :old-name new-name
pour supprimer une branche.master
, dans les détails du référentiel, définissez la branche par défaut sur nouvelle branche. L'erreur est:By default, deleting the current branch is denied, because the next 'git clone' won't result in any file checked out, causing confusion. You can set 'receive.denyDeleteCurrent' configuration variable to 'warn' or 'ignore' in the remote repository to allow deleting the current branch, with or without a warning message. To squelch this message, you can set it to 'refuse'. error: refusing to delete the current branch: refs/heads/master
Il semble qu'il existe un moyen direct:
Voir la réponse originale pour plus de détails.
la source
2.20.1
Supprimé l'ancienne branche mais la nouvelle n'a pas été créée.Cela peut également être fait de la manière suivante.
Renommez d'abord la branche locale, puis la branche distante.
Renommer la branche locale:
Si vous êtes connecté dans une autre branche,
Si vous êtes connecté dans la même branche,
Renommer une branche distante:
la source
Si vous avez déjà envoyé le mauvais nom à distance, procédez comme suit:
Basculez vers la branche locale que vous souhaitez renommer
git checkout <old_name>
Renommer la branche locale
git branch -m <new_name>
Appuyez sur la
<new_name>
branche locale et réinitialisez la branche en amontgit push origin -u <new_name>
Supprimer la
<old_name>
branche distantegit push origin --delete <old_name>
Cela était basé sur cet article .
la source
Joindre un extrait simple pour renommer votre branche actuelle (locale et d'origine):
Explication de git docs:
la source
Il n'y a pas de méthode directe,
Renommer la succursale locale ,
Ma branche actuelle est maître
git branch -m master_renamed
#master_renamed est le nouveau nom du maîtreSupprimer la branche distante,
git push origin --delete master
#origin est remote_namePoussez la branche renommée dans la télécommande,
git push origin master_renamed
C'est ça...
la source
git push -u origin master_renamed
de définir la branche comme une branche de suiviCela peut être fait même sans renommer la branche locale en trois étapes simples:
la source
J'utilise ces alias git et il fait à peu près le travail automatiquement:
Cela fonctionne si vous avez les noms par défaut comme maître, origine, etc. Vous pouvez modifier comme vous le souhaitez mais cela vous donne l'idée.
la source
J'ai dû faire la tâche suivante pour renommer la branche locale et distante:
la source
Renommez votre succursale locale. Si vous êtes sur la branche que vous souhaitez renommer:
git branch -m nouveau-nom
Si vous êtes dans une autre branche:
Supprimez l'ancienne branche distante et appuyez sur la nouvelle branche locale.
git push origin: ancien nom nouveau nom
Réinitialisez la branche en amont pour la branche locale de nouveau nom. Passez à la succursale puis:
git push origin -u nouveau-nom
Tout est prêt!
la source
Si vous êtes sur la branche que vous souhaitez renommer:
si vous restez sur une branche différente à l'heure actuelle:
Restez sur la branche cible et:
Basculez vers la branche cible puis:
la source