Как получить список всех файлов в истории git с размерами

Если вы планируете оптимизировать размер своего git-репозитория с помощью, например, bfg – то просто жизненно необходимо получить список всех файлов в репозитории с их размерами. Из которых вы потом сможете выделить именно те, которые надо удалить из истории вашего проекта. Ниже я приведу вам bash-скрипт который сформирует для вас этот список и отсортирует его по размеру файлов.

git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest