git cherry-pick <commit-hash> will apply the changes made in an existing commit to another branch, while recording a new commit. Essentially, you can copy commits from branch to branch.
Given the following tree (Source)
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master] \ 76cada - 62ecb3 - b886a0 [feature]
Let's say we want to copy
b886a0 to master (on top of
We can run
git checkout master git cherry-pick b886a0
Now our tree will look something like:
dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 - a66b23 [master] \ 76cada - 62ecb3 - b886a0 [feature]
Where the new commit
a66b23 has the same content (source diff, commit message) as
b886a0 (but a different parent). Note that cherry-picking will only pick up changes on that commit(
b886a0 in this case) not all the changes in feature branch (for this you will have to either use rebasing or merging).