git gc
d'une git repack
donc il n'y a pas de sens dans l'manuellement reconditionnement à moins que vous allez passer certaines options spéciales.
La première étape est de voir si la majorité de l'espace est (comme ce serait normalement le cas) de votre base de données objet.
git count-objects -v
Cela devrait donner un rapport de combien déballé objets, il y a dans votre référentiel, de combien d'espace ils prennent place, combien de fichiers du pack que vous avez et combien d'espace qu'ils occupent.
Idéalement, après un repack, vous n'avez pas déballé objets et un fichier de pack mais il est parfaitement normal d'avoir quelques objets qui ne sont pas directement référence actuelle des branches toujours présent et décompressé.
Si vous avez un gros pack et que vous voulez savoir qu'est-ce que la prise de l'espace, alors vous pouvez lister les objets qui composent le pack avec la façon dont ils sont stockés.
git verify-pack -v .git/objects/pack/pack-*.idx
Notez que verify-pack
prend un fichier d'index et de ne pas le pack de fichier lui-même. Ce qui donne un rapport de chaque objet dans le pack, sa vraie taille et sa taille ainsi que des informations quant à savoir si elle a été 'deltified" et si donc l'origine de la chaîne delta.
Pour voir si il y a quelque exceptionnellement gros objets dans le référentiel, vous pouvez trier la sortie numérique sur le troisième de la quatrième colonnes (par exemple, | sort -k3n
).
À partir de cette sortie, vous serez en mesure de voir le contenu de n'importe quel objet à l'aide de l' git show
de commande, même s'il n'est pas possible de voir exactement où dans le commit l'histoire du référentiel de l'objet référencé. Si vous avez besoin pour ce faire, essayez quelque chose de cette question.