web-dev-qa-db-fra.com

Réduire la taille du référentiel git

J'ai essayé de chercher un bon tutoriel sur la réduction de la taille des pensions, mais je n'en ai trouvé aucun. Comment puis-je réduire ma taille de repo ... c'est environ 10 Mo, mais Heroku n'autorise que 50 Mo et je ne suis pas près d'avoir fini de développer mon application.

J'ai déjà ajouté les suspects habituels (log, fournisseur, doc, etc.) à .gitignore. Bien que je n’ai ajouté que .gitignore récemment.

Aucune suggestion?

255
sent-hil

git gc --aggressive est un moyen de forcer le processus d'élagage (pour être sûr: _git gc --aggressive --Prune=now_). Vous avez autres commandes pour nettoyer le repo aussi. N'oubliez pas cependant que parfois _git gc_ seul peut augmenter la taille du repo !

Il peut également être utilisé après un _filter-branch_ pour marquer certains répertoires à supprimer de l'historique (avec un gain d'espace supplémentaire); voir ici . Mais cela signifie que personne ne tire de votre pension publique. filter-branch_ PEUT CONSERVER LES RÉFÉRENCES DE SAUVEGARDE DANS _.git/refs/original , afin que ce répertoire puisse également être nettoyé.

Enfin, comme mentionné dans ce commentaire et cette question ; nettoyer le reflog peut aider:

_git reflog expire --all --expire=now
git gc --Prune=now --aggressive
_

Une solution encore plus complète, voire dangereuse, est pour supprimer les objets inutilisés d'un référentiel git

312
VonC

Merci pour vos réponses. Voici ce que j'ai fait:

git gc
git gc --aggressive
git Prune

Cela semblait avoir fait le tour. J'ai commencé avec environ 10,5 Mo et maintenant, c'est un peu plus de 980 Ko.

84
sent-hil