Actualice un equipo de desarrollo con el historial repo reescrito de Git, eliminando archivos grandes

Tengo un repositorio de git con algunos binarios muy grandes. Ya no los necesito, y no me importa poder retirar los archivos de confirmaciones anteriores. Entonces, para reducir el tamaño del repositorio, quiero eliminar los binarios del historial por completo.

Después de una búsqueda en la web, concluí que mi mejor opción (¿solo?) Es usargit-filter-branch:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch big_1.zip big_2.zip etc.zip' HEAD

¿Esto parece un buen enfoque hasta ahora?

Suponiendo que la respuesta es sí, tengo otro problema con el que lidiar. losgit manual tiene esta advertencia:

¡ADVERTENCIA! El historial reescrito tendrá diferentes nombres de objeto para todos los objetos y no convergerá con la rama original. No podrá empujar y distribuir fácilmente la rama reescrita encima de la rama original. No use este comando si no conoce todas las implicaciones, y evite usarlo de todos modos, si una simple confirmación sería suficiente para solucionar su problema. (Consulte la sección "RECUPERACIÓN DESDE LA REBASE DE UPSTREAM" en git-rebase (1) para obtener más información sobre la reescritura del historial publicado).

Tenemos un repositorio remoto en nuestro servidor. Cada desarrollador empuja y tira de él. Basado en la advertencia anterior (y mi comprensión de cómogit-filter-branch funciona), no creo que pueda corrergit-filter-branch en mi copia local y luego empujar los cambios.

Por lo tanto, estoy tentativamente planeando seguir los siguientes pasos:

Dile a todos mis desarrolladores que se comprometan, presionen y dejen de trabajar por un tiempo.Inicie sesión en el servidor y ejecute el filtro en el repositorio central.Haga que todos eliminen sus copias antiguas y clonen nuevamente desde el servidor.

¿Suena bien? ¿Es esta la mejor solución?

Respuestas a la pregunta(4)

Su respuesta a la pregunta