Comment rebaser les modifications de la twig actuelle en plus des modifications fusionnées?

D’accord. Si je suis sur une twig (disons working ) et que je veux fusionner les modifications d’une autre twig (par exemple master ), alors je lance la commande git-merge master pendant que je suis dans la twig de working et les modifications sont fusionnées sans rebâtir l’histoire du tout. Si je lance git-rebase master , alors les modifications dans master sont rebasées pour être placées en haut de ma twig de working . Mais que se passe-t-il si je souhaite fusionner les modifications avec celles de master mais que je réorganise mes changements en working pour être au top? Comment je fais ça? Peut-on le faire?

Je pourrais exécuter git-rebase working sur ma twig principale pour mettre mes modifications au premier plan dans la twig master , mais je voudrais pouvoir le faire dans ma twig de working , et je n’ai aucune idée de comment. Le plus proche que je puisse penser à faire est de créer une nouvelle twig à partir de master et de rebaser working modifications de travail en plus, mais j’aurais alors une nouvelle twig au lieu de modifier la twig de working .

    Vous avez ce que le rebase fait en arrière. git rebase master fait ce que vous demandez – prend les modifications sur la twig en cours (depuis sa divergence par rapport à master) et les relit au-dessus de master , puis définit la tête de la twig en cours comme tête de ce nouvel historique. Il ne rejoue pas les modifications de master sur la twig en cours.

    Une autre façon de le voir consiste à considérer git rebase master comme:

    Rebase la twig actuelle en haut du master

    Ici, « master » est la twig en amont , et cela explique pourquoi, lors d’une rebase, les ours et les theirs sont inversés .

    Je viens de le faire il y a quelques instants de la manière suivante:

    1. sauvegarder votre travail en cours git checkout -b work-in-progress
    2. récupère les dernières modifications git fetch origin/master
    3. git reset --hard origin/master les modifications locales git reset --hard origin/master
    4. rejouer les dernières modifications depuis l’ git rebase origin/master
    5. rejouer votre travail en cours git rebase origin/work-in-progress
    6. synchroniser votre travail en cours avec la dernière git rebase origin/master