¿Cómo muevo un commit entre sucursales en Git?

Estoy seguro de que esto es algo simple que se ha preguntado y respondido, pero no sé qué términos search. Tengo esto:

/--master--X--Y A--B \--C--D--E 

Donde cometí C, D y E (localmente solamente) en una twig, pero luego me di count de que D y E son realmente independientes de C. Quiero mover C a su propia twig y mantener D y E para más adelante. Es decir, quiero esto:

  /--C /--master--X--Y A--B \--D--E 

¿Cómo saco C de debajo de D y E?

Puede usar git cherry-pick para agarrar C, y ponerlo en Y. Suponiendo que Y existe como punta una twig llamada branch-Y :

 $ git checkout branch-Y $ git cherry-pick C 

Así que ahora C está encima de Y. Pero D y E también contienen C (la selección de cereza no mueve una confirmación, solo hace una copy). Tendrás que volver a calcular D y E encima de B. Suponiendo que E es la punta de la branch-E y B es la branch-B , puedes:

 $ git checkout branch-E $ git rebase --interactive branch-B 

Esto abrirá una session interactiva de rebase. Simplemente elimina commit C por completo, y deja D y E intactos. A continuación, tendrá D y E actualizados en la parte superior de B sin C.