Comment merge un changement d'une ancienne twig à une nouvelle twig?

Le scénario:

  • dev dans la twig master
  • fork master dans une twig Feature, et l'envoyer à QA, avec une caractéristique dans celui-ci
  • dev un peu plus en maître
  • git checkout Feature
  • faire une petite réparation
  • Envoyer la fonctionnalité, avec cette correction, à QA
  • git checkout master
  • git merge Feature

Imaginez ma surprise quand Git a dit "okay, vous voulez que maître ressemble à Fix maintenant", et a jeté tous mes changements "dev plus". J'en ai besoin pour n'appliquer que le seul hashtag qui diffère du moment où les deux twigs fourchèrent.

Comment puis-je effectuer ce scénario simple et évident? Le cauchemar serait de faire le même changement dans le master, puis d'get un conflit de fusion irréconciliable non pertinent lorsque le même changement se passe dans une twig "production" …

Solutions Collecting From Web of "Comment merge un changement d'une ancienne twig à une nouvelle twig?"

Si personne ne dépend de votre twig (c.-à-d. Si personne n'a tiré de la twig de chapeau que vous avez poussée), je le rebasquerais sur le master :

 git checkout master # make sure master is up-todate git pull # rebase my feature branch on top of master git checkout myFeatureBranch git rebase origin/master 

Cela rejoue vos modifications sur le maître, et vous pouvez résoudre tout conflit localement dans votre twig de fonctionnalité.

Ensuite, la fusion vers master est un rapide-sortingvial un

 git checkout master git merge myFeatureBranch 

Enfin, vous pouvez pousser le master : le repo en amont acceptera à nouveau ces changements comme une fusion rapide (vous n'ajoutez que de nouveaux commits au-dessus de l' origin/master )

Vous avez 2 possibilités: 1 / Vous devriez d'abord merge vos modifications principales sur votre caractéristique, résoudre votre conflit potentiellement, puis quand c'est bon, fusionnez votre caractéristique dans le maître.

 git checkout master git pull git checkout Feature git pull git merge master --no-commit --no-ff # Analyze the changes that will be merged into your Feature git commit git push 

et fais la même fusion sur ton maître

2 / Cherry choisir les commits que vous voulez, mettre à jour le conflit et commettre.

 git cherry-pick _your_Hash_