2014-02-17 1 views
1

Я клонировал локальное репо в два разных соглашения: один голый и один не голый. Голый - 750 МБ, а не голый - 3 ГБ. Поскольку я могу «свободно конвертировать» между этими двумя, такая же информация должна быть как в голых, так и в не-голых репозиториях. Тогда как не-голый может быть в четыре раза больше?Почему голый git repo 1/4 размер не-голого?

Я бы понял, если он был в два раза больше, так как, возможно, каждый файл должен находиться как в .git, так и в рабочем каталоге. Но почему четыре раза?

+0

@Paddy Упс, спасибо – Anna

+0

Я бы предпочел, чтобы это был вопрос о медведях, но я думаю, что это имеет смысл. – Paddy

ответ

1

Файлы, хранящиеся в .git/objects, часто упакованы. Это означает, что они сжаты и не выровнены по границам блоков. Скорее, проверка скорее всего содержит очень много мелких файлов. Я не удивлюсь, если соотношение будет лучше при использовании файловой системы с лучшей упаковкой небольших файлов, таких как btrfs. Таким образом, оба аспекта, играющих вместе, дают в вашем каталоге .git/objects относительно небольшую величину. То есть, если вы не забыли git gc. ;-)

1

Поскольку индексы «упакованы», сжаты. Их размер меньше размера файлов версий, особенно если это текстовые файлы.

Смежные вопросы