Quels sont les “objets en vrac” que le Git GUI se réfère à?
Quand j'ai ouvert le Git GUI, je reçois un message qui fait référence à loose objects
. Je n'ai git gc
et qui a supprimé le message.
Quels sont loose objects
et comment pourrais-je empêcher que cela se reproduise?
- Vous pouvez simplement cliquer sur "Oui" dans le menu pop-up quand il vous demande si les objets en vrac doivent être emballés aujourd'hui. Git GUI exécuter
git gc
pour vous, avec une belle interface de la barre de progression (quoique montré que coincé la plupart du temps).
Vous devez vous connecter pour publier un commentaire.
Un objet (les blobs, les arbres, et s'engage) avec l'algorithme SHA-dire - 810cae53e0f622d6804f063c04a83dbc3a11b7ca seront stockées à
( le split, dans les deux premiers caractères pour améliorer les performances du système de Fichiers comme maintenant, pas tous les objets sont stockés dans le même répertoire)
Objets stockés en tant que ci-dessus, sont désignés comme des objets en Vrac.
Lorsque vous démarrez avec votre pension, vous aurez généralement les objets en vrac. Comme le nombre est élevé, il devient inefficace et ils sont stockés dans un fichier de pack. Ces objets sont appelés des paniers objets.
est ce que vous exécutez pour emballer des objets (Généralement lâche les objets qui ne sont pas nécessaires et quelques semaines sont également supprimés et avec
--prune=<date>
option, vous pouvez la force de supprimer des objets en vrac qui ne sont plus nécessaires. Comme lorsque vous modifier un commit. L'ancien commit objet n'est plus nécessaire. )--prune
option est activée par défaut, et depuisgit gc
est automatiquement déclenchée par l'usage (par exemple,commit
), généralement, vous n'avez pas à vous inquiéter à ce sujet. Je n'ai pas utiliser git gui, et je ne peux pas trouver exactement où il est déclenché dans la source, mais soit il fait de son propre contrôle, ou tout simplement intercepte legc
déclenchée par le nom de la commande. Ce n'est certainement rien à craindre, cependant, seulement causée par une utilisation normale.git gc
manuellement? Je pense qu'il devrait s'améliorer, parce que des objets sont inefficaces, et 50 000 est un nombre très grand. J'ai aussi découvert que l'emballage réduit considérablement l'espace utilisé par le.git
dossier.git gc
également effectuer delta binaire codant pour les gros fichiers binaires?Le Git Livre l'explique assez bien:
https://git-scm.com/book/en/v2/Git-Internals-Packfiles