2016-05-10 11 views
0

Ich benutze Git. Ich habe 3 Zweige Master (m), Feature1 (F1) und Feature2 (f2).Git verschmelzen einen Zweig zu einem anderen ohne eine bestimmte Zusammenführung

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

Ich habe f1 f2 in verschmelzen. und dann rückgängig gemacht die Zusammenführung und später merge f2 zu Master, jetzt Master Commit für die Zusammenführung von f1 und das Zurücksetzen der f1 Zusammenführung.

Jetzt möchte ich die neuesten Änderungen vom Master bekommen so wollen Master zu f1 zusammenführen, aber wenn ich versuchte, es zusammenfügen entfernt alle meine früheren Änderungen. Gibt es eine Möglichkeit, Master mit meinem Feature1 (F1) ohne das Merge-Revert-Commit zu verschmelzen.

+0

Sie können das mit einer interaktiven Rebase tun, aber ich denke, Ihre sicherste Wette wäre, 'git revert' die Rückumwandlung. –

+0

, also sollte ich zuerst den Master zu meiner Feature-App zusammenführen, dann auf sie die Rücksetzung festschreiben –

+0

Ja. Schau, ob es das tut. Ich würde auch neue Zweige an den Spitzen der einzelnen Zweige erstellen, so dass ich die Dinge wieder zurückbringen kann, unabhängig davon, was Sie tun. Das ist besonders hilfreich bei Aktionen wie Rebase, die destruktive, die Geschichte verändernde Aktionen sind. –

Antwort

2

Beim Zurücksetzen eines Zusammenführungs-Commits werden diese Änderungen in keinem nachfolgenden Zusammenführen verfügbar gemacht, da das Zurückkehren verhindert, dass Vorfahren in die Zusammenführung einbezogen werden.

Sie können dies überwinden, indem Sie das Zurücksetzen-Commit auf dem f1-Zweig nach dem Zusammenführen des Masters rückgängig machen. Nicht auf Master zurücksetzen, da Sie die f1-Änderungen in Master vor der Zusammenführung in f1 haben, was ich vermute, dass Sie nicht wollen.