¿Cómo elimino el historial antiguo de un repositorio git?

Me temo que no pude encontrar nada como este escenario en particular.

Tengo un repositorio git con mucha historia: más de 500 sucursales, más de 500 etiquetas, desde mediados de 2007. Contiene ~ 19,500 confirmaciones. Nos gustaría eliminar todo el historial antes del 1 de enero de 2010, para que sea más pequeño y más fácil de manejar (mantendríamos una copia completa del historial en un repositorio de archivos).

Sé que el commit que quiero convertirme en la raíz del nuevo repositorio. Sin embargo, no puedo encontrar el git mojo correcto para truncar el repositorio para comenzar con ese commit. Estoy adivinando alguna variante de

git filter-branch

implicaría injertos sería necesario; También podría ser necesario tratar cada una de las más de 200 ramas que queremos mantener por separado y luego volver a unir el repositorio (algo quehacer saber cómo hacer).

¿Alguien ha hecho algo como esto? Tengo git 1.7.2.3 si eso importa.

Respuestas a la pregunta(10)

Su respuesta a la pregunta