Branch A has commits (X,Y) that also need to be in Branch B. The cherry-pick operations should be done in the same chronological order that the commits appear in Branch A.
cherry-pick
does support a range of commits, but if you have merge commits in that range, it gets really complicated
git checkout branch-B
git cherry-pick X
git cherry-pick Y
Branch A has a series of commits (X..Y) that need to be moved to branch B. For this case, you'll need to specify the commit before the initial commit you're interested in order for it to be included. Example: you want commits B..D from (...A->B->C->D-E->...) you would use "A" as the starting commit. You'll also need the commit SHA for the HEAD of the branch you are transferring to.
git checkout branch-B
git log # Note the SHA of most recent commit (M)
git rebase --onto M <commit before X> Y
git rebase HEAD branch-B
Is this "Copying commits between branches"? (X and Y are in both Branch A and B at the end)
Or is this "Moving commits between branches"? (X and Y are MOVED from Branch A and placed in Branch B, so X and Y are ONLY in Branch B at the end)
I was looking for a way to Move some commits. After implementing some features it was decided we don't want to release then until the next major release. Had we known that we would have created the dev branch for those features. I hope what I'm saying makes sense.