Problem: You want to test a feature someone has developed, but it only exists in a remote branch which is woefully out of date.
Problem: You want to test a feature someone has developed, but it only exists in a remote branch which is woefully out of date.
If you merged or rebased, you'd get a bunch of old changes in, possibly conflicting.
With cherry picking, you take one change set, and replay that as a new commit over another branch.
This is useful if you just want one commit onto another branch, without its history.
It's useful to use the -x
option, so the commit message contains a note where it was cherry picked from.
Why won't I use git am or git apply?
because git apply is for applying patches (files), and git am for applying series of patches. git cherry-pick applies commits - i.e., commits from your own repo, vs commits you import from other repos.