git: cabeza de twig mobile

Tengo dos twigs de git, "A" y "B", y los numbers del 1 al 8. Mi historial se parece a este

1 -> 2 -> 3 -> 4[A] -> 5 -> 6 -> 7 -> 8[B] 

Quiero cambiarlo para que mi historia se vea así:

 1 -> 2 -> 3 -> 4 -> 5 -> 6[A] -> 7 -> 8[B] 

Es decir, quiero mover la cabeza de la twig A desde la confirmación 4 a la confirmación 6.

¿Qué commands uso para hacer esto?

Tu puedes correr:

 git branch -f A 6 
 git checkout A git reset --hard 6 

Este es un caso especial de rebase, solo que la twig está vacía:

 git checkout A git rebase B 

rebase es más general; maneja este caso también:

Antes de:

  A1 -> A2 -> [A] / 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8[B] 

Después:

  A1' -> A2' -> [A] / 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8[B] 

A1 'y A2' se combinan para representar el delta entre 4 y 8 en la twig padre.

Git Rebase maneja este caso trivial sin problemas. Creé un repository con dos commits en master y una twig br apuntando al primer commit.

 $ git checkout br Switched to branch 'br' $ git rebase master First, rewinding head to replay your work on top of it... Fast-forwarded br to master. 

Poof, hecho. El logging ahora muestra la twig que apunta a la segunda confirmación.

También podemos lograr este "Después": [gracias a M. Flaschen por señalar que faltaba]:

  A1'' -> A2'' -> [A] / 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8[B] 

En lugar de volver a basar a la twig B, nombraríamos la confirmación específica 6, por ej.

 git checkout A git rebase 6 # rather than rebase B 

Cuando no hay compromisos A1 y A2, esto se networkinguce a la pregunta original: mover el puntero [A] de 4 a 6.