¿Cómo puedo eliminar los objetos no deseados de mi repositorio después de filter-branch --subdirectory-filter

Estoy usand

git filter-branch --subdirectory-filter dir/name -- --all

para crear un repositorio que solo tenga un historial relacionado con ese nombre / directorio. Antes de hacer el filtro, clono el repositorio original (que es mucho más grande) en un directorio tmp. Después de la rama de filtro, el repositorio se ve exactamente como lo quiero, con una excepción: parece que todavía contiene todos los objetos del repositorio original, aunque no se muestran en "git log".

¿Cómo puedo eliminar todos esos objetos no deseados por completo?

He intentado cosas como:

git reflog expire --expire=now --all
git gc --aggressive --prune=now

Para mí está claro que no sé por qué todavía están allí o qué significa eliminarlos, pero me gustaría saberlo. Un poco de información posiblemente relacionada trabajando en mi contra es que había hecho un git repack -a en mi repositorio de origen hace un tiempo y parece copiar ese paquete al nuevo repositorio. Sin embargo, parece que aún debería poder hacer lo que quiero.

Respuestas a la pregunta(1)

Su respuesta a la pregunta