¿Nunca has hecho una transacción en git y te has dado cuenta que deberías haberla puesto en otra rama? Yo lo hago todos los días.
Afortunadamente, es posible arreglar esto y dejarlo tal como si hubieras sido tan estrictamente riguroso en el control del árbol de cambios como se supone que se debe ser. La verdad es que yo sigo sin entender muchos detalles de cómo funciona git, pero parece que cualquier cosa que puedas imaginar o necesitar puede hacerse.
Originalmente reproduje aquí los pasos para mover una transacción ya hecha hacia una nueva rama, tal como se indica a continuación. A posteriori recurrí a este mismo recurso para mover una transacción a otra rama ya existente, cuyos pasos incluyo en el segundo ejemplo.
Los pasos (aparentemente más correctos) para mover la última transacción a una nueva rama son los siguientes:
git co -b nueva_rama HEAD~1 git branch --set-upstream-to=rama_original git cherry-pick ..rama_original git branch --force rama_original rama_original~1
Créditos para esta respuesta en StackOverflow: Move the most recent commit(s) to a new branch with Git
Si lo que se quiere es mover la transacción a una rama ya existente se haría así:
git co rama_destino git cherry-pick rama_original~1..rama_original git branch --force rama_original rama_original~1
Si no es solo una transacción sino varias seguidas se podría hacer cambiando el ~1 utilizado por el número de transacciones a mover.
¡Ojo!, si en el camino se han creado nuevas ramas o si se han subido (push) los cambios a un repositorio se pueden originar graves complicaciones, do it at your own risk.