2010-01-22 31 views
187

Intenté buscar un buen tutorial para reducir el tamaño del repositorio, pero no encontré ninguno. ¿Cómo puedo reducir mi tamaño de repo ... es de unos 10 MB, pero la cosa es que Heroku solo permite 50 MB y no estoy cerca de haber terminado de desarrollar mi aplicación.Reducir el tamaño del repositorio git

Agregué los sospechosos habituales (registro, proveedor, doc, etc.) a .gitignore ya. Aunque solo agregué .gitignore recientemente.

¿Alguna sugerencia?

+1

Lo acabo de hacer y lo bajé a 2,2 mb ... ¡muchas gracias! Aunque eso no pareció reducir el tamaño del repo en Heroku..hmm –

+9

Presiónelo usando --force. Sobrescribirá los contenidos incluso si no hubo cambios (no hay nuevos commits, etc.) –

+1

@MarcinGil - A continuación, VonC indica que necesita acceder al servidor para limpiar el servidor remoto (si lo estoy analizando correctamente). – jww

Respuesta

221

git gc --aggressive es una forma de forzar el proceso de podar (para estar seguro: git gc --aggressive --prune=now). Usted tiene other commands para limpiar el repositorio también. No lo olvides, a veces git gc solo puede increase the size of the repo!

También se puede utilizar después de filter-branch, para marcar algunos directorios que se eliminarán del historial (con una ganancia adicional de espacio); ver here. Pero eso significa que nadie está sacando de su repositorio público. filter-branch can keep backup refs in .git/refs/original, para que el directorio también se pueda limpiar.

Finalmente, como se mencionó in this comment y this question; la limpieza de la reflog puede ayudar:

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

Una aún más completa, y posiblemente peligrosa, la solución es to remove unused objects from a git repository

+0

En otro caso, consulte también http://stackoverflow.com/questions/1029969/why-is-my-git-repository-so-big – VonC

+1

Nota para usted: no olvide las ramas remotas: http: // stackoverflow. com/questions/11255802/delete-remove-binary-file-from-git-repository-is-still-large – VonC

+1

Nota para usted: no se olvide de las etiquetas remotas – saiyancoder

59

Gracias por sus respuestas. Esto es lo que hice:

git gc 
git gc --aggressive 
git prune 

Eso parecía haber hecho el truco. Empecé con alrededor de 10.5MB y ahora es poco más de 980KB.

+6

'prune' siempre se ejecuta con' gc' (con el valor predeterminado de 2 semanas). – Cas

+80

U puede ejecutar los 3 con ciruela hasta ahora usando 'git gc --aggressive --prune = now' – rahul286

Cuestiones relacionadas