Eliminar el commit de git que no está en la historia

Tenía algo como esto:

A - B - C 

Enmendé C y tuve:

 A - B - D 

Y C en flotar en otro lugar, ¿cómo puedo eliminar C del repository local y remoto?

No hay indicaciones para C. Pero puedo leer su hash en Github. ¿Cómo puedo forzar la recolección de basura y llevar esto a control remoto?

Desde el soporte de github

Tenga en count que forzar el empuje no borra las confirmaciones en el repository remoto, simplemente introduce nuevas y mueve el puntero de la twig para señalarlas. Si le preocupa que los usuarios accedan a las confirmaciones incorrectas directamente a través de SHA1, deberá eliminar el repository y volver a crearlo.

Gracias.

Necesitará ser un poco más específico acerca de lo que realmente hizo, qué refs (cabezas, "pointers") señalan cuáles compromisos, etc. antes de que pueda get una respuesta específica.

En general, si ningún punto de reference apunta a su confirmación anterior, C, será basura recolectada a time.

Si tiene refs apuntando a C y quiere que C desaparezca, debe eliminar esos refs. Por supuesto, debe comprender los posibles efectos de hacer eso, es decir, qué otras confusiones podrían desaparecer.