¿Cómo deshacer una confirmación y confirmar los cambios en la otra rama en Git?

El error común que hago en git es

no comprobar en que rama estoycometer cambios en una rama incorrecta (en la rama B, pensando que estoy en A, comprometiendo un cambio para la función A)

¿Cómo puedo volver y confirmar las modificaciones en la rama adecuada?