Eliminar un solo file de un antiguo compromiso

Me acabo de dar count de que un compromiso antiguo cometió un file confidencial que no debería estar en control de fuente.

Sin embargo, desde ese momento ha habido muchas twigs y fusiones. Si vuelvo a la confirmación original, luego restablezco y vuelvo a hacer la confirmación, será mucho research en la database y repetir todas las twigs y combinaciones desde entonces.

El file no se ha editado en absoluto desde su confirmación original; git log badfile.ext muestra nada más que eso commit.

¿Hay alguna otra técnica que pueda usar para hacer que la historia del repository parezca que este file nunca existió, sin cambiar todas las confirmaciones posteriores?

Este es un repository privado y sé dónde están todas las copys clonadas; está bien si el problema puede solucionarse en un repository y luego todos los demás repos tienen que eliminar y volver a clonar para recoger el cambio.

Consulte los documentos de Github sobre cómo eliminar datos sensibles . Como se menciona aquí, no se puede hacer esto sin reescribir el historial (cambiar un compromiso significa cambiar su hash, lo que a su vez significa que todos los commits que apuntan a él también deben cambiar, y así sucesivamente).

Además, tenga en count que no tiene sentido (si es posible) purgar el historial de los clones también.

Entonces, básicamente, debe pedirle a todos los involucrados en el trabajo con el repository que aplique todos sus cambios, luego volver a escribir el historial en su repository central, eliminar los clones locales y clonar desde el repository actualizado.