Git: cómo crear una twig a partir de una versión anterior y, selectivamente, agregar commits desde entonces

Tengo un proyecto que necesita seriamente corregir errores, pero también he desarrollado algunas características nuevas. Me gustaría trasladar todas mis confirmaciones de funciones recientes a una twig diferente, porque la próxima versión debe ser principalmente correcciones de errores, no funciones no probadas. He visto otro hilo donde se dice que puedo usar 'git branch branchname (sha1-of-commit)' para crear la twig. Mi pregunta es: ¿es posible, una vez que haya creado esta twig, mover algunos commits más recientes de master a la nueva twig? (las confirmaciones movidas ya no deberían aparecer en la twig maestra).

Podrías git cherry-pick cuidadosamente las confirmaciones para la nueva sucursal. Cada selección de cherry-pick aplica los cambios de la confirmación determinada, copiándolos de manera efectiva.

 git checkout branchname git cherry-pick <sha-of-interesting-commit> 

La eliminación de los commits de la twig principal es trikcier. Si no ha rebase esos commits, podría hacer una rebase interactiva de master sobre sí misma, y ​​luego eliminar los commits eliminándolos de la list de commits presentados.

Ejemplo: esto rebases los últimos cinco commits en tu twig actual

 git rebase --interactive HEAD~5 

Le presentará una list de confirmaciones, donde puede eliminar las que no desea

 pick 1fc6c95 Patch A pick 6b2481b Patch B pick dd1475d something I want to split pick c619268 A fix for Patch B pick fa39187 something to add to patch A 

Consulte https://help.github.com/articles/interactive-rebase para get más información.

Tenga en count que cherry-pick copys rebase --interactive , no las que se mueven, y rebase --interactive realmente reescribe la historia al crear una nueva cadena de confirmaciones.