web-dev-qa-db-fra.com

Mettre à jour une branche obsolète par rapport au maître dans un dépôt Git

J'ai un référentiel Git qui a une branche (locale et distante) qui est devenue obsolète. J'aimerais mettre cette branche à jour avec la branche principale, mais je ne sais pas comment faire cela. Il y aura probablement aussi beaucoup de conflits de fusion.

Comment puis-je amener ou mettre à jour cette branche obsolète dans le même état que la branche principale?

114
Andrew

Mettez à jour la branche principale, ce que vous devez faire quand même.

Ensuite, l'un des:

  1. Rebasez l'ancienne branche par rapport à la branche principale. Résolvez les conflits de fusion lors de la création d'une nouvelle base et vous obtiendrez une branche à jour fusionnant proprement avec le maître.

  2. Fusionnez votre branche en maître et résolvez les conflits de fusion.

  3. Fusionner le maître dans votre branche et résoudre les conflits de fusion. Ensuite, la fusion de votre branche vers le maître devrait être propre.

Aucune d'entre elles n'est meilleure que l'autre, elles ont juste des modèles de compromis différents.

J'utiliserais l'approche de rebase, qui donne des résultats globaux plus nets aux lecteurs ultérieurs, à mon avis, mais ce n'est rien à part le goût personnel.

Pour rebaser et garder la branche, vous devriez:

git checkout <branch> && git rebase <target>

Dans votre cas, consultez l’ancienne succursale, puis

git rebase master 

pour le faire reconstruire contre maître.

141
Daniel Pittman