Bitbucket: eliminar carpeta del historial de Git

Al alojar Git en Bitbucket , hay un límite estricto de 2 GB; si se excede, solo tendrá acceso de solo lectura al repositorio. Para evitar esto, puede, por ejemplo, eliminar retroactivamente carpetas o archivos grandes de sus confirmaciones. Pero también en otros casos (si los datos de acceso han llegado al historial o node_modules ha vuelto a ser maestro) tienes que manipular retroactivamente el historial de Git, contrariamente a su naturaleza.


Bitbucket ha escrito un artículo detallado sobre esto. Para ejecutar todo en un caso, primero creamos un nuevo repositorio:

historial de bitbucket limpio

Luego clonamos el repositorio en una carpeta vacía en la máquina local.:

6ab7686fc508ce87c52b10bb5d01ee51

Ahora creamos dos subcarpetas con archivos de contenido aleatorio:

6ab7686fc508ce87c52b10bb5d01ee51

Ahora estamos presionando al maestro:

6ab7686fc508ce87c52b10bb5d01ee51

Ahora casi hemos alcanzado el límite estricto de 2 GB en Bitbucket:

historial de bitbucket limpio

También podemos verificar esto localmente (ver "paquete de tamaño"):

6ab7686fc508ce87c52b10bb5d01ee51

historial de bitbucket limpio

La tarea ahora es eliminar retroactivamente "foo" del repositorio para reducir su tamaño a la mitad. Para hacer esto, primero editamos el HEAD actual y escribimos la carpeta en gitignore:

6ab7686fc508ce87c52b10bb5d01ee51

Finalmente, eliminamos la carpeta con la ayuda de BFG Repo Cleaner (BFG requiere un JRE actual en el sistema como requisito del sistema):

6ab7686fc508ce87c52b10bb5d01ee51

Ahora podemos ver el resultado localmente.:

6ab7686fc508ce87c52b10bb5d01ee51

historial de bitbucket limpio

Sin embargo, el tamaño del repositorio no ha cambiado en Bitbucket porque el recolector de basura aún no se ha ejecutado de forma remota y bitbucket no realiza un "git gc" con cada inserción.:

historial de bitbucket limpio

Esto también lo confirma el soporte:

historial de bitbucket limpio

Por lo tanto, es mejor enviar una solicitud directamente a support@bitbucket.org para ejecutar manualmente "git gc" en el repositorio. Después de poco tiempo, esto también lo hizo el equipo de soporte.:

historial de bitbucket limpio

Si mueve "recientemente" el repositorio a otra computadora, solo 0.9 GB terminarán en el disco. Si alguien tiene la versión de 1.8 GB disponible localmente, un "git pull" seguido de "git gc" es suficiente.

Atrás