J'ai la branche master
qui suit la branche distante origin/master
.
Je veux les renommer en master-old
à la fois localement et sur le site distant. Est-ce possible ?
Pour les autres utilisateurs qui ont suivi origin/master
(et qui ont toujours mis à jour leur master
branche via git pull
), que se passerait-il si je renommais la branche distante ?
Est-ce que leur git pull
fonctionnerait toujours ou bien une erreur se produirait, indiquant qu'il n'a pas pu trouver origin/master
plus ?
Ensuite, plus loin, je veux créer une nouvelle master
(à la fois localement et à distance). Encore une fois, après avoir fait cela, que se passe-t-il maintenant si les autres utilisateurs font git pull
?
Je suppose que tout cela entraînerait beaucoup d'ennuis. Existe-t-il un moyen propre d'obtenir ce que je veux ? Ou devrais-je simplement laisser master
telle qu'elle est et créer une nouvelle branche master-new
et y travailler plus tard ?
2 votes
La recette donnée dans la réponse acceptée s'applique à une branche de n'importe quel nom, mais les avertissements (comme indiqué) ne s'appliquent pas, en raison du rôle spécial (par défaut) de l'attribut maître dans Git.
3 votes
@kynan : Je crois que je ne comprends pas. Quels avertissements s'appliquent à master et ne s'appliquent pas aux autres branches ? Si c'est une branche nommée xy et que d'autres personnes ont suivi cette branche, en quoi cela serait-il différent ?
4 votes
L'inconvénient est que vous ne pouvez normalement pas supprimer le maître distant. Cela ne s'applique pas à la réponse d'Aristote, vous pouvez donc la marquer comme étant la réponse acceptée. Vous avez raison, tout
git push -f
affecte la capacité àpull
à partir de n'importe quelle branche de suivi à distance.1 votes
Vous pouvez créer une nouvelle branche
master-old
qui pointe vers le même commit que le précédentmaster
branche. Ensuite, vous pouvez écraser lemaster
avec vos nouvelles modifications en faisant unmerge
avec leours
stratégie. Faire une fusion fonctionne lorsque le site distant n'autorise pas les changements non rétroactifs. Cela signifie également que les autres utilisateurs n'auront pas de mises à jour forcées.1 votes
@kynan
master
n'est spéciale que tant qu'il s'agit de la seule branche existante. Dès qu'il y en a plus d'une, toutes les branches sont sur un pied d'égalité.0 votes
Duplicata possible de Comment renommer une branche locale de Git ?
0 votes
La seule solution à distance sans manipulations locales est disponible dans les commentaires en stackoverflow.com/questions/4753888/