Si vous n'avez pas engagé de modifications
Si vos modifications sont compatibles avec l'autre branche
C'est le cas de la question car l'OP veut s'engager dans une nouvelle branche et s'applique également si vos modifications sont compatibles avec la branche cible sans déclencher un écrasement.
Comme dans la réponse acceptée par John Brodie, vous pouvez simplement vérifier la nouvelle branche et engager le travail:
git checkout -b branch_name
git add <files>
git commit -m "message"
Si vos modifications sont incompatibles avec l'autre branche
Si vous obtenez l'erreur:
error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches
Ensuite, vous pouvez cacher votre travail, créer une nouvelle branche, puis afficher vos modifications de cachette et résoudre les conflits:
git stash
git checkout -b branch_name
git stash pop
Ce sera comme si vous aviez effectué ces modifications après avoir créé la nouvelle branche. Ensuite, vous pouvez vous engager comme d'habitude:
git add <files>
git commit -m "message"
Si vous avez commis des modifications
Si vous souhaitez conserver les commits dans la branche d'origine
Voir la réponse de Carl Norum avec la sélection de cerises, qui est le bon outil dans ce cas:
git checkout <target name>
git cherry-pick <original branch>
Si vous ne souhaitez pas conserver les commits dans la branche d'origine
Voir la réponse de joeytwiddle sur ce doublon potentiel . Suivez l'une des étapes ci-dessus, le cas échéant, puis restaurez la branche d'origine:
git branch -f <original branch> <earlier commit id>
Si vous avez poussé vos modifications vers une télécommande partagée comme GitHub, vous ne devez pas tenter cette restauration à moins que vous ne sachiez ce que vous faites.