Problem: You want to test a feature someone has developed, but it only exists in a remote branch which is woefully out of date.
Source
From git help cherry-pick:
git-cherry-pick - Apply the changes introduced by some existing commits
[...]
Given one or more existing commits, apply the change each one introduces, recording a new commit for each. This requires your working tree to be clean (no modifications from the HEAD commit).
So, when you cherry-pick
a commit, git
takes that commit's changes (its diff
) and tries to apply it on your current working directory, creating a new commit that is equivalent to the one you are cherry-pick
ing.
It's a way to re-do another commit's changes on a different history line.
Besides taking the changes, cherry-pick
also preserves the original commit's info like author and that.
Lastly, cherry-pick
can receive a group of commits to apply, in which case it would act like cherry-pick
ing them one by one, in chronological order (older first).