D'accord. Si je suis sur une branche (disons working
) et que je veux fusionner les modifications d'une autre branche (disons master
), j'exécute la commande git-merge master
alors que je suis sur la branche working
et les modifications sont fusionnées sans refaire l'histoire du tout. Si j'exécute git-rebase master
, les modifications apportées à master
sont modifiées afin de pouvoir figurer au sommet de ma branche working
. Mais que se passe-t-il si je souhaite fusionner les modifications de master
mais redéfinir mes modifications dans working
afin d’être au-dessus? Comment je fais ça? Cela peut-il être fait?
Je pourrais exécuter git-rebase working
sur ma branche master
pour mettre mes modifications en haut de la branche master
, mais j'aimerais pouvoir le faire dans ma branche working
, et je ne sais pas comment. Le plus proche que je puisse faire est de créer une nouvelle branche à partir de master
et de rebaser les modifications de working
par dessus, mais j'aurais alors une nouvelle branche au lieu de modifier la branche working
.
Vous avez ce que rebase
fait à l'envers. git rebase master
fait ce que vous demandez - prend les modifications sur la branche actuelle (depuis sa divergence par rapport au maître) et les rejoue au-dessus de master
, puis définit la tête de la branche actuelle sur tête de cette nouvelle histoire. Il ne le fait pas rejoue les modifications de master
au-dessus de la branche en cours.
Une autre façon de voir les choses est de considérer git rebase master
comme:
Rebassez la branche actuelle au-dessus de
master
Ici, 'master
' est la branche en amont , ce qui explique pourquoi, lors d'une réfection, ours
et theirs
sont inversés .