Comment reformuler les changements de la branche actuelle en plus des changements fusionnés?
OK. Si je suis sur une branche (dites working
), et que je veux fusionner dans les changements d'une autre branche (dites master
), alors j'exécute la commande git-merge master
alors que sur la branche working
, et les changements sont fusionnés sans rebaser l'histoire du tout. Si j'exécute git-rebase master
, alors les changements dans master
sont rebasés pour être mis sur le dessus de ma branche working
. Mais que faire si je veux fusionner dans les modifications de master
mais rebase mes modifications dans working
pour être au top? Comment dois-je faire? Peut-il être fait?
je pourrais lancer git-rebase working
sur ma branche master
pour mettre mes modifications en haut dans la branche master
, mais j'aimerais pouvoir le faire dans ma branche working
, et je n'ai aucune idée de comment. Le plus proche que je peux penser à faire est de créer une nouvelle branche à partir de master
et puis rebaser working
changements sur le dessus de cela, mais alors j'aurais une nouvelle branche au lieu de modifier la branche working
.
3 réponses
vous avez ce que rebase
fait à l'envers. git rebase master
fait ce que vous demandez - prend les changements sur la branche actuelle (depuis sa divergence par rapport au maître) et les rejoue sur master
, puis place le chef de la branche actuelle à la tête de cette nouvelle histoire. n'est pas replay les changements de master
sur le dessus de la branche courante.
une autre façon de le considérer est de considérer git rebase master
comme:
Rebase la branche courante par-dessus
master
ici, " master
" est la branche en amont , et qui explique pourquoi, lors d'un rebase, ours
et theirs
sont inversés .
je viens de faire ceci il y a quelques instants de la manière suivante:
- sauvegarder votre travail en cours en cours
git checkout -b work-in-progress
- récupération des dernières modifications
git fetch origin/master
- écarter tout changement local
git reset --hard origin/master
- replay dernières modifications de master
git rebase origin/master
- relire votre travail en cours
git rebase origin/work-in-progress
- synchroniser votre travail en cours avec la dernière master
git rebase origin/master