Trying to explain this as concisely as possible. I started with the following branches (names changed to protect the guilty)... * clientA * clientB both have a common ancestry.... I then checked out clientB created a new branch clientB_patch and did a load of work and commits. However, I actually wanted all those commits to apply to clientA branch instead so.... git checkout clientA git checkout -b clientA_patch (to ensure I didn't wreck original branch) git rebase --onto clientA_patch clientB clientB_patch It says "rewinding" head and then applies the commits I would have expected. However, I have now been switched to the 'clientB_patch' branch and it says that it differs from its tracked remote branch by hundreds of commits. clientA_patch is unchanged. It seems to have mangled clientB_patch and done nothing to clientA_patch. Where did I go wrong? TIA -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html