2016-05-10 1 views
0

J'utilise git. J'ai 3 branches master (m), feature1 (f1) et feature2 (f2).Git fusionner une branche à l'autre sans une fusion particulière

--------------------- m
        |       |
        |         ------- f1
          ------------- f2

je fusionner en f1 f2. puis inversé la fusion et fusionner plus tard f2 en master, maintenant que master a commit pour fusionner f1 et revenir à la fusion f1.

Maintenant, je veux obtenir les dernières modifications du maître, donc je veux fusionner maître à f1, mais quand j'ai essayé de fusionner, il a supprimé tous mes changements précédents. Existe-t-il un moyen de fusionner le maître avec ma fonction1 (f1) sans la fusion?

+0

Vous pouvez faire cela avec un rebasage interactif, mais je pense que votre pari le plus sûr serait de «revenir» le commit de retour. –

+0

donc je devrais d'abord fusionner le maître à mon application de fonctionnalité, puis le rétablir la restauration de retour –

+0

Oui. Voir si ça le fait. Je créerais aussi de nouvelles branches au bout de chaque branche, afin que je puisse retourner les choses comme elles sont maintenant, peu importe ce que vous faites. Cela est particulièrement utile avec des actions comme rebase qui sont destructrices, des actions qui changent l'histoire. –

Répondre

2

Lors de la restauration d'un commit de fusion, ces modifications ne seront jamais rendues disponibles dans les fusions ultérieures car la restauration inverse empêche les ancêtres d'être inclus dans la fusion.

Vous pouvez résoudre ce problème en rétablissant la validation de retour sur la branche f1 après la fusion du maître. Ne revenez pas sur master car vous aurez les changements f1 dans master avant la fusion en f1 que je suppose que vous ne voulez pas.