J'ai essayé de chercher un bon tutoriel sur la réduction de la taille du référentiel, mais je n'en ai trouvé aucun. Comment puis-je réduire la taille de mon référentiel ... c'est environ 10 Mo, mais le problème est que Heroku n'autorise que 50 Mo et je suis loin d'avoir fini de développer mon application.
J'ai déjà ajouté les suspects habituels (journal, fournisseur, doc, etc.) à .gitignore. Bien que je n'aie ajouté que .gitignore récemment.
Aucune suggestion?
.gitignore
, il y a un bon service sur gitignore.io qui vous aidera à mettre en place un bon en.gitignore
fonction de votre environnement de développement.Réponses:
git gc --aggressive
est une façon de forcer le processus d'élagage (pour être sûr:)git gc --aggressive --prune=now
. Vous avez également d' autres commandes pour nettoyer le dépôt. N'oubliez pas, parfoisgit gc
seul peut augmenter la taille du repo !Il peut également être utilisé après a
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 retire de votre repo public.filter-branch
peut conserver les références de sauvegarde.git/refs/original
, afin que le répertoire puisse également être nettoyé.Enfin, comme mentionné dans ce commentaire et cette question ; le nettoyage du reflog peut aider:
Une solution encore plus complète et peut-être dangereuse consiste à supprimer les objets inutilisés d'un référentiel git
la source
Merci pour vos réponses. Voici ce que j'ai fait:
Cela semblait avoir fait l'affaire. J'ai commencé avec environ 10,5 Mo et maintenant c'est un peu plus de 980 Ko.
la source
prune
est toujours géré pargc
(il y a 2 semaines par défaut).git gc --aggressive --prune=now
Dans mon cas, j'ai poussé plusieurs gros fichiers (> 100 Mo) puis j'ai procédé à leur suppression. Mais ils étaient encore dans l'histoire de mon repo, j'ai donc dû les supprimer également.
Quelle a été l'astuce:
Ensuite, vous devez pousser la force sur votre branche:
bfg est un outil qui peut être installé sur Linux et macOS en utilisant brew:
la source