Si no has cometido cambios
Si sus cambios son compatibles con la otra rama
Este es el caso de la pregunta porque el OP quiere comprometerse con una nueva rama y también se aplica si sus cambios son compatibles con la rama de destino sin activar una sobrescritura.
Como en la respuesta aceptada por John Brodie, simplemente puede verificar la nueva sucursal y comprometer el trabajo:
git checkout -b branch_name
git add <files>
git commit -m "message"
Si sus cambios son incompatibles con la otra rama
Si obtiene el error:
error: Your local changes to the following files would be overwritten by checkout:
...
Please commit your changes or stash them before you switch branches
Luego puede esconder su trabajo, crear una nueva rama, luego hacer estallar sus cambios de escondite y resolver los conflictos:
git stash
git checkout -b branch_name
git stash pop
Será como si hubiera realizado esos cambios después de crear la nueva rama. Entonces puedes cometer como de costumbre:
git add <files>
git commit -m "message"
Si ha cometido cambios
Si desea mantener las confirmaciones en la rama original
Vea la respuesta de Carl Norum con cherry-picking, que es la herramienta correcta en este caso:
git checkout <target name>
git cherry-pick <original branch>
Si no desea mantener las confirmaciones en la rama original
Vea la respuesta de joeytwiddle sobre este posible duplicado . Siga cualquiera de los pasos anteriores según corresponda, luego retroceda la rama original:
git branch -f <original branch> <earlier commit id>
Si ha empujado sus cambios a un control remoto compartido como GitHub, no debe intentar esta reversión a menos que sepa lo que está haciendo.