Git cómo eliminar la confirmación seleccionada del tree?

Posible duplicado:
Git: eliminando commits seleccionados del repository

Me gustaría eliminar el commmit seleccionado del tree de confirmación lineal:

R-> A-> B-> C-> D-> CABEZA

Quiero eliminar la confirmación C y todos los cambios realizados en ella.

Puede hacerlo utilizando una operación de rebase interactiva . Hay una buena descripción de cómo funciona en ese enlace.

Esencialmente, reescribirá las confirmaciones para que en lugar de

 R->A->B->C->D->HEAD 

tienes

 R->A->B->D'->HEAD' 

D' está relacionado con D porque introduce el mismo cambio, pero se basa en B lugar de C Tenga en count que si D introduce cambios que dependen de C , puede tener un conflicto que necesita resolver.