You should add a TODO for yourself here, we later want to avoid doing the cherryPick() if the first parent of commitToPick is the current HEAD.  Instead we should fast-forward to commitToPick, so that the branch isn't modified.

C Git does this to avoid unnecessary object rewriting, which is really useful when you are using Gerrit Code Review as your upstream review system and you accidentally `git rebase -i HEAD~toofarback`.  So long as none of those commits are modified, they keep the same SHA-1 and Gerrit doesn't know you "rebased".