Почему мой репозиторий Git такой большой?

Не совсем то, что вы хотите, но вы можете взломать это с помощью ключевого слова typof, но только если у вас есть var, который объявлен как ваш тип интерфейса, как показано ниже. Обратите внимание, что я думаю, что то, что вы сделали в последнем кодебло, намного лучше:)

interface ExerciseData {
    id : number;
    name : string;
    vocabulary : {
        from : string;
        to : string;
    }[];
}
var x: ExerciseData;
var vocabs : typeof x.vocabulary[];
129
задан the Tin Man 1 December 2013 в 00:16
поделиться

5 ответов

I recently pulled the wrong remote repository into the local one (git remote add ... and git remote update). After deleting the unwanted remote ref, branches and tags I still had 1.4GB (!) of wasted space in my repository. I was only able to get rid of this by cloning it with git clone file:///path/to/repository. Note that the file:// makes a world of difference when cloning a local repository - only the referenced objects are copied across, not the whole directory structure.

Edit: Here's Ian's one liner for recreating all branches in the new repo:

d1=#original repo
d2=#new repo (must already exist)
cd $d1
for b in $(git branch | cut -c 3-)
do
    git checkout $b
    x=$(git rev-parse HEAD)
    cd $d2
    git checkout -b $b $x
    cd $d1
done
64
ответ дан 24 November 2019 в 00:15
поделиться

Вы уверены, что учитываете только файлы .pack, а не файлы .idx? Они находятся в том же каталоге, что и файлы .pack, но не имеют данных репозитория (как указывает расширение, они не более чем индексы для соответствующего пакета - на самом деле, если вы знаете правильную команду, вы можете легко воссоздать их из файла пакета, и git сам делает это при клонировании, поскольку только файл пакета передается с использованием собственного протокола git).

В качестве репрезентативного образца я взглянул на мой локальный клон linux- Репозиторий 2.6:

$ du -c *.pack
505888  total

$ du -c *.idx
34300   total

Это означает, что расширение должно быть примерно на 7%.

Существуют также файлы вне объектов / ; по моему личному опыту, из них index и gitk.

4
ответ дан 24 November 2019 в 00:15
поделиться

Другие объекты git, хранящиеся в .git включает деревья, коммиты и теги. Коммиты и теги небольшие, но деревья могут стать большими, особенно если у вас очень большое количество небольших файлов в вашем репозитории. Сколько файлов и сколько у вас коммитов?

3
ответ дан 24 November 2019 в 00:15
поделиться

Вы пробовали использовать git repack ?

2
ответ дан 24 November 2019 в 00:15
поделиться

. NET (C #, VB.NET, ...)

.NET хранит строк внутри как последовательность объектов System.Char . Один System.Char представляет кодовую единицу UTF-16 .

Из документации MSDN на System.Char :

.NET Framework использует Char структура для представления Unicode персонаж. Стандарт Юникода идентифицирует каждый символ Unicode с помощью уникальное 21-битное скалярное число, называемое кодовая точка и определяет UTF-16 форма кодирования, определяющая, как кодовая точка закодирована в последовательность одного или нескольких 16-битных значений. Каждый 16-битное значение варьируется от шестнадцатеричного От 0x0000 до 0xFFFF и хранится в

Если у вас есть одна большая упаковка, и вы хотите знать, что занимает пространство, вы можете перечислить объекты, составляющие пакет, вместе с тем, как они хранятся.

git verify-pack -v .git/objects/pack/pack-*.idx

Обратите внимание, что verify-pack принимает индексный файл, а не сам пакетный файл. Это дает отчет о каждом объекте в пакете, его истинном размере и его упакованном размере, а также информацию о том, был ли он «разбит», и если да, то о происхождении дельта-цепочки.

Чтобы увидеть, есть ли какие-либо необычно большие объекты в вашем репозитории вы можете численно отсортировать вывод по третьему или четвертому столбцу (например, | sort -k3n ).

Из этого вывода вы сможете увидеть содержимое любого объекта, используя команда git show , хотя невозможно точно увидеть, где в истории фиксации репозитория имеется ссылка на объект. Если вам нужно это сделать, попробуйте что-нибудь из этого вопроса .

63
ответ дан 24 November 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: