2016-07-13 24 views
0

ich das folgende Szenario haben:Merging 2 Zweige, die die gleiche haben begehen

master 

test_1 (branch from master) with commit X updated with --amend 

test_2 (branch from test_1) with original commit X and a new commit Y. 

Ich bin neu in git, und ich habe einen Fehler gemacht, als ich den zweiten Zweig erstellt. Dieser Zweig sollte vom Master sein, stattdessen ist es ein Zweig von test_1 nachdem ich bereits einen commit X über test_1 gemacht habe. Ich arbeitete an test_2 (commit Y) und in der Zwischenzeit musste ich etwas für die commit X getan am test_1 ändern.

Wie soll ich vorgehen, diese Zweige in Master in einer Weise, bei der Zusammenführung, die ich nicht Commits erstellen müssen oder mit dem Konflikt zwischen commit X von test_2 und commit X updated von test_1 (viele Dateien zu lösen geändert)? Auch commit Y ist auf andere Dateien als commit X getan.

EDIT: Zuerst dachte ich über das Erstellen eines neuen Zweigs von Master und Kopieren der Dateien für Commit Y und Zusammenführung mit diesem Zweig, aber ich möchte wissen, ob es eine "sauberere" Lösung gibt.

Antwort

1

cherry-pick Ihre Änderungen von test_1 und test_2 Zweig. Um die Änderungen in master zu erhalten, wechseln Sie zu master Zweig und

git cherry-pick <commit-hash-of-X> <commit-hash-of-Y> 

Immer wenn es ein amend ist der Hash geändert wird. Der Commit-Hash von X in test_1 wird sich von dem von test_2 unterscheiden. Wählen Sie also X von test_1 und Y von test_2

+0

Dies ist genau das, was ich brauchte. Danke vielmals. – bitcell