Eliminar archivos grandes de hace varias confirmaciones (en git)

Eliminar archivos grandes de hace varias confirmaciones (en git)

Hice varias confirmaciones locales en mi base de código e intenté enviarlo a mi repositorio, pero había bastantes archivos grandes. Simplemente me di por vencido y seguí trabajando, haciendo compromisos locales. Eliminé los archivos grandes ahora y los comprometí nuevamente, pero todavía estoy intentando enviar los archivos grandes originales. Intenté agregar un gitignore después de haberlos confirmado originalmente para ignorar cualquier archivo de más de 50 MB, sin éxito.

¿Algunas ideas?

Respuesta1

Leeraquísobre la rama de filtro.

Alguien accidentalmente comete un archivo binario enorme con un git add irreflexivo y desea eliminarlo de todas partes. Quizás hayas cometido accidentalmente un archivo que contenía una contraseña y quieras que tu proyecto sea de código abierto. filter-branch es la herramienta que probablemente desee utilizar para borrar todo su historial. Para eliminar un archivo llamado contraseñas.txt de todo su historial, puede usar la opción --tree-filter para filtrar la rama:

$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21)
Ref 'refs/heads/master' was rewritten

También puede hacer una rebase interactiva en su rama en el punto donde confirmó esos archivos y eliminarlos de esa confirmación. El enlace de arriba también explica esto, pero básicamente:

git rebase -i HEAD~X

le permitirá editar las últimas X confirmaciones.

información relacionada