Wie füge ich ein bestimmtes Commit von einem Zweig in einen anderen in Git zusammen?
Habe ich BranchA
die 113 commits vor BranchB
.
Aber ich möchte nur die letzten 10 oder so begeht, von BranchA
zusammengeführt BranchB
.
Gibt es eine Möglichkeit, dies zu tun?
InformationsquelleAutor der Frage NullVoxPopuli | 2011-06-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
git cherry-pick <commit>
Befehl können Sie einen einzelnen commit (egal aus welcher Branche) und, im wesentlichen, Stellungswechsel es in Ihrem Zweig.Kapitel 5 das Pro Git-Buch erklärt es besser als ich könnenkomplett mit Diagrammen und so; suchen Sie nach dem Abschnitt mit dem Titel "Rebase und Cherry Picking Workflows". (Die Kapitel über die Rebasierung ist auch gut zu Lesen.)
Schließlich gibt es einige gute Kommentare auf dem cherry-picking vs Zusammenführen vs rebasierung in einer anderen Frage ALSO.
InformationsquelleAutor der Antwort ewall
könnten Sie Kirsche wählen Sie das gewünschte verpflichtet.
Fand ich diese Wie cherry-pick mehrere commits
Ich würde die akzeptierte Antwort.
InformationsquelleAutor der Antwort hvgotcodes
Wenn BranchA wurde nicht geschoben, um einen remote-dann können Sie die Reihenfolge der commits mit
rebase
und dann einfachmerge
. Es ist vorzuziehen, verwendenmerge
überrebase
wenn möglich, weil es nicht duplizieren verpflichtet.InformationsquelleAutor der Antwort Seth Reno
QUELLE: https://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Integrating-Contributed-Work
Den anderen Weg zu gehen, führte die Arbeit aus einem Zweig zu einem anderen ist zu cherry-pick. Ein cherry-pick Git ist wie ein rebase für einen einzelnen commit. Es dauert der patch eingeführt wurde, einen commit und versucht, erneut auf den Zweig, dem Sie gerade auf. Dies ist nützlich, wenn Sie eine Reihe von commits, die auf ein Thema Niederlassung und die Sie integrieren möchten, nur einer von Ihnen, oder wenn Sie nur ein commit auf ein Thema Niederlassung und Sie würden es vorziehen, cherry-pick, anstatt laufen Stellungswechsel. Angenommen, Sie haben ein Projekt, das wie folgt aussieht:
Wenn Sie möchten, ziehen verpflichten e43a6 in Ihren master branch, die Sie ausführen können,
Diese zieht die gleiche änderung in e43a6, aber Sie bekommen einen neuen commit SHA-1-Wert, da das Datum aufgetragen ist anders. Jetzt ist Ihre Historie sieht wie folgt aus:
Jetzt können Sie entfernen Sie Ihre Thema branch-and-drop die commits, die du nicht ziehen wollen.
InformationsquelleAutor der Antwort artamonovdev