179 votes

Comment rebaser les changements de la branche actuelle sur les changements en cours de fusion ?

Ok. Si je suis sur une branche (disons working ), et je veux fusionner les changements d'une autre branche (disons master ), puis je lance la commande git-merge master alors que sur le working et les changements sont fusionnés sans que l'historique ne soit modifié. Si je lance git-rebase master alors les changements dans master sont rebasés pour être mis sur le haut de mon working branche. Mais que se passe-t-il si je veux fusionner les changements de la branche master mais rebasez mes changements dans working pour être au top ? Comment puis-je faire ça ? Est-ce que c'est possible ?

Je pourrais courir git-rebase working sur mon master pour mettre mes changements en haut de la page dans la branche master mais j'aimerais pouvoir le faire dans mon working de la branche, et je ne sais pas comment. Le plus proche que je puisse faire est de créer une nouvelle branche à partir de master et ensuite rebase working par-dessus, mais j'aurais alors une nouvelle branche au lieu de modifier la branche working branche.

295voto

hobbs Points 71946

Vous avez ce que rebase fait à l'envers. git rebase master fait ce que vous demandez - prend les changements sur la branche courante (depuis sa divergence avec master) et les rejoue au dessus de master puis définit la tête de la branche actuelle comme étant la tête de cette nouvelle histoire. Il n'a pas rejouer les changements de master en plus de la branche actuelle.

75voto

VonC Points 414372

Une autre façon de voir les choses est de considérer git rebase master comme :

Rebasement de la branche courante sur le dessus de master

Ici , ' master est le en amont et cela explique pourquoi, lors d'un rebasement, ours et theirs sont inversés .

0voto

Ben Perlmutter Points 11

Lors de la refonte des modifications actuelles sur le master, vous pouvez :

  1. tirer vers le bas le dernier maître : git pull <remote_name> master
  2. vérifiez la branche dans laquelle vous voulez transférer les changements : git checkout <branch_name>
  3. effectuer un rebasement : git rebase master

un chemin alternatif qui vous permet de rebaser les changements d'une branche distante (origin/master, par exemple) dans une branche locale sans mettre à jour la branche distante localement est : git rebase origin/master

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X