Git – Cambiar "commit de origen" de una twig

Tengo algunos difíciles de encontrar un flujo de trabajo genérico de Git para eliminar algunas confirmaciones (entre 2 refs) de una sucursal; aquí hay un pequeño ejemplo:

Mi estado actual es así:

* a878646 (develop) C8a * 070acb7 C7a | * 7937ce7 (HEAD, F1) C9b | * fb4add2 C8b | * 30456de C7b |/ * 6a0999e C6 * 45ae978 C5 * e8a2eeb (tag: T3, master) C4 * 24b98b2 (tag: T2) C3 * c874fc7 (tag: T1) C2 * a853900 C1 

Quiero probar "F1" en mi plataforma, pero SOLAMENTE las confirmaciones de "F1" en el maestro.

En otras palabras, me gustaría que la F1 se convierta así:

 * 7937ce7 (HEAD, F1) C9b * fb4add2 C8b * 30456de C7b * e8a2eeb (tag: T3, master) C4 * 24b98b2 (tag: T2) C3 * c874fc7 (tag: T1) C2 * a853900 C1 

Así que tengo que eliminar commits C5 y C6.

Después de las testings, F1 debería combinarse en el maestro.

Pero estos commits tienen que permanecer en la twig de "desarrollo", porque después de eso tengo que hacer un "git checkout develop && git rebase origin / master"

El resultado en el desarrollo debe ser:

 * a878646 (HEAD, develop) C8a * 070acb7 C7a * 6a0999e C6 * 45ae978 C5 * 7937ce7 C9b (tag: T4, master) * fb4add2 C8b * 30456de C7b * e8a2eeb (tag: T3) C4 * 24b98b2 (tag: T2) C3 * c874fc7 (tag: T1) C2 * a853900 C1 

¿Hay alguna manera de lograr eso simplemente? Este problema es recurrente, y busco de otra manera que hacerlo con varios "comicios" uno por uno …

Busco una forma simplemente usando "master", "F1", y sin saber el número de commits entre estas twigs y en F1: /

Creo que puedo usar "rebase" pero realmente no entiendo cómo …

Muchas gracias !

Usando rebase --onto

 git checkout F1 git rebase 6a0999e --onto master 

o

 git checkout F1 git rebase develop --onto master 

Usando git rebase -i

 git checkout F1 git rebase -i master # Remove lines with C5 and C6 and save. 

Usando git cherry-pick

 git checkout master git cherry-pick 6a0999e..7937ce7 # note that 6a0999e commit will not be cherry-picked - this is the commit before split git branch F1 HEAD -f # move F1 ref to current commit 

Tenga en count que los hashes de confirmación serán diferentes a los de su list de "resultado en desarrollo" (en cada versión).

    Intereting Posts