Git: ¿cómo volver a un compromiso pasado para comenzar una twig manteniendo todas las confirmaciones?

Supongamos que tenemos esta historia de compromisos:

c0 <- c1 <- c2 <- c3 <- c4 (master) 

¿Cómo puedo conseguir esto?

 c0 <- c1 <- c2 <- c3 <- c4 (master) ^ |- c21 <- c22 (test) 

Esto es, mantener todo el trabajo hecho, pero comenzar una nueva twig desde un punto anterior.

Gracias

Puede hacer un pago simple:

 git checkout c2 

Y luego comienza tu sucursal como de costumbre:

 git checkout -b test 

Podrías hacerlo con una línea:

 git checkout -b test c2 

O si solo desea crear la nueva sucursal y sin pago:

 git branch test c2