17. August 2013

Änderungen selektiv übernehmen mit git cherry-pick

Mit git cherry-pick <commit> kann ein einzelner Commit aus einem anderen Branch “herausgepickt” und in den aktuellen Branch übernommen werden. Git extrahiert dazu einen Patch für die Änderungen des Commits und erstellt einen neuen Commit im aktuellen Branch:

$ git cherry-pick 3158f27
Finished one cherry-pick.
[master c5693f6] bugfix

git cherry-pick

cherry-pick wird vor allem lokal verwendet, zum Beispiel um einzelne, sinnvolle Commits aus einem Branch, der verworfen werden soll, zu übernehmen. Da die Information, woher der Commit stammt, in diesem Fall nicht von Belang ist, wird diese Operation nicht in der Historie dokumentiert.

cherry-pick ist auch sinnvoll, um Bugfixes selektiv aus neueren Releases in Wartungs-Releases zu übernehmen. Hier ist die Information, woher der Commit stammt, von Interesse. Solche Commits können mit -x in der Historie dokumentiert werden:

$ git cherry-pick -x 3158f27
Finished one cherry-pick.
[master c5693f6] bugfix (cherry picked from commit 3158f27)
iOS Training Schulung Workshop
Nächste iOS-Schulung:
24. – 28. Juni 2019
Frankfurt am Main
iOS Buch
iOS 12-Apps entwickeln mit Swift & Xcode 10