Git – aplastando compromisos anteriores y reflejándolo en diferentes twigs

Soy bastante nuevo para Git y estoy tratando de aplastar una serie de compromisos anteriores, pero estoy teniendo problemas para tener este reflection 'aplastante' en todas las twigs.

Empecé con el siguiente tree:

A---->B---->C---->D---->E---->F---->G---->H (Branch 1) \ \ \ I---->J---->K (Branch 2) 

Quiero 'squash' confirma C, D, E y F, pero quiero que este 'aplastamiento' se refleje en las twigs 1 y 2.

Intenté 'git rebase -i HEAD~7' e hice los cambios necesarios (mientras estaba en la Rama 1), pero esto es con lo que terminé:

 A---->B---->C'---->G---->H (Branch 1) \ \ \ C---->D---->E---->F---->G---->H---->I---->J---->K (Branch 2) 

Cuando lo que quería era:

 A---->B---->C'---->G---->H (Branch 1) \ \ \ I---->J---->K (Branch 2) 

¿Qué estoy haciendo mal? ¿Hay alguna manera de lograr el resultado que quiero?

Gracias por adelantado.

Ok, esto es mejor que la respuesta de cherry-pick en mi comentario, porque si te comprometes mucho con cherry-pick eso puede ser bastante tedioso (también evita la creación de una tercera twig).

Lo más rápido es dos rebase s. El primero es el que especificó. Luego, checkout twig 2 y vuelve a establecer la base en la parte superior de tu twig 1 ya rebase , eliminando las confirmaciones que no deseas ( C , D , E , F , G y H ). Entonces, básicamente, tendrías:

 git checkout <branch 1> git rebase -i HEAD~7 

que ya hiciste, seguido de:

 git checkout <branch 2> git rebase -i <branch 1> 

Cuando abre su editor pnetworkingeterminado, simplemente elimine las líneas asociadas con confirmaciones C a H El resultado será lo que estabas buscando.