Récemment, j'ai ajouté des fichiers volumineux à mon dépôt local et j'ai poussé ces fichiers à l'extérieur vers d'autres dépôts. Après avoir réalisé cela, j'ai fait un peu de googling sur le sujet et j'ai complètement supprimé ces fichiers en utilisant git reset. J'ai aussi fait d'autres choses pour optimiser le repo (git gc, repack). Maintenant, ma copie locale du repo est inférieure à 100 Mo de plus de 400 Mo. Le problème est cependant, que mon repo sur le site heroku est toujours répertorié comme 400 Mo, et je ne suis pas vraiment sûr si theres quelque chose que je devrais, pour refléter tous les changements dans repo à distance?Comment optimiser un dépôt GIT à distance - principalement Heroku
Répondre
Comme avec le dépôt local, git gc
est l'opération qui va nettoyer tous les objets libres (comme les blobs pour vos fichiers qui ne font plus partie de l'historique). Lorsque vous avez accès à la télécommande, vous pouvez le faire directement. S'il n'y a absolument aucun moyen de le faire, alors vous êtes bloqué en attendant que l'un de vos pushs se déclenche git gc --auto
. C'est garanti pour arriver finalement, donc à moins qu'il y ait réellement un problème avec le repo prenant 400MB (par exemple payer plus pour l'hébergement), ce n'est pas vraiment un problème. N'importe qui récupérant/tirant/clonant du repo va juste obtenir ce qu'il doit obtenir, le 100MB.
Je crois que github exécute aussi périodiquement git gc
sur des dépôts; Je ne sais pas si Heroku fait quelque chose comme ça.
Github ne semble pas exécuter gc périodiquement (ou du moins, sur un référentiel sans activité) –
@Romuald je pense il est en fait exécuté indirectement par git quand vous poussez. Je ne sais pas comment vous sauriez si elle est exécutée sur un référentiel distant sans activité - elle ne devrait pas produire de modifications visibles à côté de la taille du repo, et le repo ne peut pas être suffisamment remballé pour changer cela de manière significative . – Cascabel
Découvrez https://github.com/heroku/heroku-repo
heroku repo:gc -a appname
Son assez facile de jeter une instance Jenkins et appeler à partir de votre serveur de build de temps en temps.
- 1. comment récupérer un dépôt git à distance supprimé par mégarde du dépôt local
- 2. Git tirer ou clone Git ne fonctionne pas après avoir essayé de faire dépôt heroku
- 3. pousser à l'erreur git heroku
- 4. Lire un dépôt Git, sans Git
- 5. Comment importer un référentiel svn sous un dépôt git?
- 6. Comment réinitialiser un dépôt git-svn
- 7. Comment puis-je envoyer un email à un dépôt git?
- 8. Comment synchroniser un dépôt git avec subversion?
- 9. Git avec deux repos à distance, un git, un svn
- 10. Ajouter .git/config à un autre dépôt Git
- 11. fatale: Pas un dépôt Git
- 12. Comment synchroniser avec un dépôt Git distant?
- 13. Mise à jour du dépôt Git paresseux
- 14. Git: Comment obtenir un instantané d'un dépôt git
- 15. Git reset --hard et un dépôt distant
- 16. Comment ajouter un dépôt git en tant que dépendance partagée d'un autre dépôt git?
- 17. Comment faire un dépôt git en lecture seule?
- 18. Utilisation à distance de git gaming
- 19. Comment ajouter une télécommande SVN à un dépôt Git?
- 20. Comment conserver un fichier dans un autre dépôt git à jour dans mon dépôt?
- 21. Git checkout <SHA> et Heroku
- 22. git, accès à distance - ssh
- 23. Réduire la taille du dépôt git
- 24. Nettoyage branches Git à distance
- 25. Comment recréer une branche de suivi à distance git svn?
- 26. fractionnement d'un dépôt git
- 27. Git Pousser une branche à heroku
- 28. Nombre de validations dans un dépôt git
- 29. comment fusionner le dépôt git cloné avec le dépôt d'origine
- 30. Git: Comment vérifier les changements à distance dans un répertoire
'git gc' appelle en interne' git repack', donc il n'est généralement pas nécessaire de reconditionner directement. – Cascabel
Si vous pouvez vous permettre de le descendre, en mode maintenance, vous pourriez essayer de pousser un petit repo git à heroku, en l'écrasant. Vous aurez des avertissements, suivez-les pour forcer la poussée (je ne me souviens pas des détails). Puis forcez votre vrai repo là-haut. Ce n'est pas une vraie réponse car je ne sais pas comment git gc change votre histoire git avec ces fichiers .. – oma