Quite el histórico Git Commit para que no aparezca en "git log -p"

Hay información delicada que se envió a un repository hace aproximadamente un mes y me gustaría eliminar completamente cualquier rastro de.

Soy experto en utilizar git rebase y sé que puedo usar esto para cambiar la confirmación, y las respuestas como Cómo eliminar un 'commit git' de LOG, como si nunca hubiera existido, muestran cómo eliminar una confirmación usando git rebase .

Sin embargo, el hash prerregulado del compromiso ofensivo aún se puede encontrar usando

 git log -p $BAD_SHA 

Entonces, a pesar de que la confirmación ya no aparece en el git log , con el command anterior, alguien aún puede ver la información sensible aunque haya sido "eliminada" usando rebase.

¿Hay alguna forma de eliminar completamente un SHA después de que haya sido networkingiseñado, de modo que ya no se muestre usando git log -p $BAD_SHA ?


Adición: He intentado git gc --prune=all --aggressive after git gc --prune=all --aggressive , y esto no resuelve el problema. No hay ninguna twig en el repository local o remoto que aún haga reference al hash incorrecto del que quiero deshacerme.

Si la confirmación no se puede ver en ninguna twig existente, la recolección de elementos no utilizados debería ocuparse de ello.

 git gc --prune=all 

Resulta que, después de realizar la recolección de basura con git gc --prune=all --aggressive , también necesitaba eliminar completamente el repository localmente y luego volver a clonarlo. Ahora la confirmación ofensiva no aparece en el git log -p $BAD_SHA .