¿Cómo copyr compromisos a una nueva twig desde el maestro, excepto compromisos específicos?

Tengo una twig principal y estoy tratando de copyr las confirmaciones del maestro a una twig recién creada. Todas las confirmaciones deben estar en la nueva twig, excepto en las confirmaciones específicas.

master: c1-c2-c3-c4-c5-c6-c7-c8-c9 newbranch: c1-c2-c4-c5-c7-c8-c9 

Como arriba, me gustaría copyr todos los commits a newbranch excepto por decir, c3 y c6.

Además, tengo que mantener la twig principal sin modificaciones, tal como está.

Estoy usando la versión de Git 1.8.4

¿Podría ayudarme en este escenario?

Gracias

Puedes usar cherry-pick para copyr commits de una twig a otra

Suponiendo que c1 , c2 y demás son cada sha1 de compromiso que podría hacer de la siguiente manera

c1-c2-c4-c5-c7-c8-c9

 git checkout -b newbranch git cherry-pick c1 git cherry-pick c2 git cherry-pick c4 git cherry-pick c5 git cherry-pick c7 git cherry-pick c8 git cherry-pick c9 

Para este caso específico, es posible que prefiera usar una interfaz GUI como SmartGit, que le permitirá seleccionar cuidadosamente cada confirmación seleccionándola con el mouse, sin necesidad de ocuparse del SHA1.

Otra posibilidad es hacer reference a las confirmaciones basadas en su distancia desde el master .

Por ejemplo, su commit c9 puede ser referencedo como master~ , c8 como master~2 y así sucesivamente.

Otra posibilidad es crear una twig en el compromiso donde está el master

 git checkout -b newbranch master 

y luego usando git rebase -i que creará una nueva twig con solo los commits seleccionados

 git rebase -i HEAD~8 

Se abrirá un editor. Simplemente elija las confirmaciones que desea retener y descarte la que desea descartar, borrando sus líneas

 pick 9748201 c2 pick 3b1c9d3 c4 pick 408de72 c5 pick eef6862 c7 pick bffc3a9 c8 pick 669920f c9 

Luego guarda y, voilà, tu newbranch será una copy de master sin c3 y c6