Se você não efetuou alterações
Se suas alterações forem compatíveis com a outra ramificação
Esse é o caso da pergunta, porque o OP quer se comprometer com uma nova ramificação e também se aplica se suas alterações forem compatíveis com a ramificação de destino sem acionar uma substituição.
Como na resposta aceita por John Brodie, você pode simplesmente fazer o checkout da nova ramificação e confirmar o trabalho:
git checkout -b branch_name
git add <files>
git commit -m "message"
Se suas alterações forem incompatíveis com a outra ramificação
Se você receber o erro:
error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches
Em seguida, você pode esconder seu trabalho, criar uma nova ramificação, exibir suas alterações e resolver os conflitos:
git stash
git checkout -b branch_name
git stash pop
Será como se você tivesse feito essas alterações depois de criar o novo ramo. Então você pode confirmar como de costume:
git add <files>
git commit -m "message"
Se você cometeu alterações
Se você deseja manter os commits na ramificação original
Veja a resposta de Carl Norum com a escolha da cereja, que é a ferramenta certa neste caso:
git checkout <target name>
git cherry-pick <original branch>
Se você não deseja manter os commits na ramificação original
Veja a resposta de joeytwiddle sobre essa duplicata em potencial . Siga qualquer uma das etapas acima, conforme apropriado, e reverta a ramificação original:
git branch -f <original branch> <earlier commit id>
Se você enviou as alterações para um controle remoto compartilhado como o GitHub, não deve tentar esta reversão, a menos que saiba o que está fazendo.