git: ¿se crea una twig de funciones 'nueva' mientras se preserva la twig de características actual?

Con respecto a git.

Tengo una twig de características que llamaremos foo . Hay una serie de cambios comprometidos y algunos cambios no comprometidos para implementar una característica.

He hecho una mala suposition y mucho de lo que está en foo ya no es deseable.

Me gustaría crear una nueva twig de function, bar sin aplicar ninguno de los cambios a foo y volver a implementar manualmente los bits que son útiles desde foo a la bar .

Una vez que la bar esté bien, borraré la twig foo .

¿Cómo puedo crear la nueva twig de funciones sin nada de lo que está en foo (un nuevo comienzo) mientras preservo lo que está en foo para poder revisarlo cuando sea necesario?

Creo que puedes cambiar a master y branch desde allí nuevamente.

 git checkout master git checkout -b bar 

Sin embargo, tendrá que realizar cualquier cambio no confirmado antes de hacer eso.
(Puede esconder, pero no creo que sea una buena idea en este caso).

 git checkout -b bar <commit> 

Donde <commit> es la confirmación de la cual se quiere derivar. Para encontrar esa confirmación, puede inspeccionar el gráfico de historia usted mismo con un command como:

 git log --decorate --graph --pretty=oneline --abbrev-commit 

Para encontrar ese compromiso programáticamente (suponiendo que se haya separado del master ):

 git merge-base foo master 

OK respondiendo mi propia pregunta. Donde me había equivocado es que al crear la nueva twig aún estaba en la twig de características, así que estaba recogiendo el estado actual de foo .

Al comprometer todo lo que estaba en foo y luego verificar master , pude crear una bar y tener un nuevo comienzo.