Moving se compromete a otra sucursal con Git

Necesito hacer que los sets de cambios 2-5 estén en la twig roja (la izquierda) en lugar de la twig azul. Obtuve resultados extraños con rebase ya que 2-5 están "basados" en 1 de todos modos. ¿Debo elegir Cherry? Actualmente estoy usando Source Tree.

enter image description here

Los compromisos 2-5 solo deben aparecer en la twig azul después de la request de extracción. Lo que significa que tienen que aparecer en la twig roja, ser aprobados y solo luego fusionarse en uno azul.

Entonces solo fusiona la twig. Git realizará una fusión de avance rápido (no se creará ninguna fusión), ya que no hay confirmaciones en la twig roja, y el resultado será que las confirmaciones 2 a 5 estarán "en la twig roja" – en realidad, la twig el puntero se moverá para apuntar a 5 , que parece ser lo que buscas.

 $ git checkout <networking branch> $ git merge <blue branch> # or $ git merge <commit id of 5> 

RE: tu actualización

Parece que quieres "mover" las confirmaciones a la twig roja. No puedes hacer eso, así no es como funciona Git. Nunca puede "mover" confirmaciones, solo mueve pointers de derivación.

Si desea que las confirmaciones aparezcan "solo" en la twig roja, básicamente solo necesita intercambiar los pointers de las twigs. Puedes hacerlo a través de una serie de git reset --hard de git reset --hard 's, o fusionar la twig azul en la twig roja como se git reset --hard arriba, y luego restablecer la twig azul en el punto antes del commit 2 . Tendrás que elegir qué punto es, ya que la confirmación 2 es una confirmación de fusión. Probablemente pueda hacerlo bien restableciéndolo al estado de origin/blue-branch .

Entonces, haz lo anterior, (combina el azul con el rojo) y luego …

 $ git checkout <blue branch> $ git reset --hard <commit id of networking commit> # OR $ git reset --hard <commit id of purple commit> # OR $ git reset --hard <origin/blue branch>