@KennyTM очень похожий вопрос, да, но это характерно для github, а не для любого метода, использующего только протокол git.
Джабботт
1
К вашему сведению, ознакомьтесь с этим расширением Chrome, которое автоматически добавляет размер хранилища к сводной информации о хранилище GitHub github.com/harshjv/github-repo-size . ОБНОВЛЕНИЕ: добавил это как ответ
Суровая Вахария
Вот подсказка: мой самый большой репозиторий содержит только изображения различных форматов, это «репродукция» иконок, которые я использую в различных приложениях. Тем не менее, GitHub сообщает о размере как 0. Поэтому я предполагаю, что он учитывает только размер известных исходных файлов и не учитывает неизвестные типы файлов.
Джерри Додж
Ответы:
276
Есть способ получить доступ к этой информации через GitHub API .
При получении информации о репозитории указанное свойство sizeоценивается размером всего хранилища (включая всю его историю) в килобайтах.
Например, репозиторий Git весит около 124 МБ. sizeСвойство возвращенного JSON полезной нагрузки переоцененный 124283.
Обновить
Размер действительно выражается в килобайтах в зависимости от использования диска в голом хранилище на стороне сервера. Однако, чтобы не тратить слишком много места на репозитории с большой сетью, GitHub использует Git Alternates . В этой конфигурации при расчете использования диска с использованием чистого хранилища не учитывается хранилище общих объектов, и, таким образом, возвращается «неполное» значение через вызов API.
Эта информация была предоставлена поддержкой GitHub.
Разве это не размер в МБ сейчас -> Это не так ясно, похоже, это зависит от запрашиваемого репо ... Маленькие репо предоставляют размер в байтах, большие в мегабайтах. Я открыл вопрос при поддержке GitHub. Я обновлю ответ, как только проблема будет закрыта.
nulltoken
6
Это не работает для частных репозиториев. Я что-то упускаю? Спасибо!
@nulltoken Любой ответ на запрос о КБ / МБ и т. д.?
nealmcb
2
Только что раздвоил репо (9 сентября 2018 года), и это КБ, а не МБ
Джейкоб Стамм
109
Если вы являетесь владельцем репозитория, точный размер можно узнать, открыв « Настройки учетной записи» → « Репозитории» ( https://github.com/settings/repositories ), и размер репозитория отображается рядом с его назначением.
Если вы не являетесь владельцем репозитория, вы можете его разветвить, а затем проверить в том же месте.
Несколько странно: используйте download as a zip fileопцию, прочитайте указанный размер файла и затем отмените его.
Я не помню, работала ли когда-либо загрузка в формате zip, но в любом случае, теперь она загружает только выбранную ветку без истории.
Не следует ли учитывать сжатие почтовых индексов? Я думаю, что исходный код и текстовые файлы могут быть сжаты до 60%.
птенец
Я не знаю, как проверить степень сжатия почтового индекса без завершения загрузки. Конечно, вы можете завершить загрузку, а затем проверить степень сжатия. Однако в этот момент вы можете также распаковать и проверить размер репо. Это действительно зависит от того, насколько точно вы должны быть. И если вы можете позволить себе скачать репо, чтобы проверить.
CoatedMoose
1
Я не смог найти его Settings > Repositories, но вместо этого нашел размер репо под Account Settings > Repositoriesвашей домашней страницей git. Конечно, это работает только с репо, которые у вас есть (или форк).
модуль
Настройки учетной записи организации не отображают размер репо, поэтому только если вы являетесь владельцем репо как пользователь, а не как организация?
Беннет Браун,
2
Размер zip-файла вообще не указывает на фактический размер репозитория: 1) он включает в себя только снимок репозитория с заданной ревизией без истории и 2) Git-репозитории хранятся как сжатые файлы пакета, но не хранить дубликаты и т. д.
Kynan
74
Если вы используете браузер Google Chrome, вы можете установить расширение GitHub Repository Size .
@BaneeIshaqueK это не то же самое, но он показывает размер репо, проверьте это здесь
Syed Shamikh Shabbir
1
ОБНОВЛЕНИЕ Теперь отлично работает даже в частных репозиториях, если вы предоставляете токен Github.
Сиддхант Римал
2
Все еще не надежный, он использует GitHub API, который не сообщает правильный размер. У меня есть репозиторий, в котором только изображения (без кода), и API сообщает о размере 0, хотя это самый большой репозиторий, который у меня есть. Это расширение даже не показывает мне размер этого конкретного репо (вероятно, потому что он видит 0).
Джерри Додж
19
@larowlan отличный пример кода. С новым GitHub API V3 оператор curl должен быть обновлен. Также, логин больше не требуется:
При выполнении запроса GET вы будете заполнены некоторыми данными JSON, и, вероятно, в строке номер 78 вы увидите ключ с именем size , который вернет размер хранилища.
Совет: При работе с JSON я предлагаю вам добавить плагин, который форматирует данные JSON, чтобы упростить чтение JSON. Установите плагин .
А) Как сообщают многие, этот размер не является точным и ненадежным. Б) Даже если бы это было так, ваши заметки о визуальном чтении JSON, номере строки и форматировании ... все это бессмысленно. JSON не предназначен для чтения людьми, он предназначен для чтения компьютерами. Вы должны упомянуть, чтобы прочитать sizeключ в ответе, а не строку 78. Не говоря уже о том, что разные форматеры будут иметь разные разрывы строк в разных местах, оставляя желаемые данные под другим номером строки.
Джерри Додж
@JerryDodge Прежде всего, вы должны внимательно прочитать ответ, который я упомянул, `` `вы должны увидеть ключ с именем size` ``, и я сказал, что вы должны probablyувидеть его в строке № 78, так что это означает, что вы должны увидеть ключ размера где-то около 78 Во-вторых, если размер из github apis был неточным, я не думаю, что вы найдете что-то более точное, чем github apis.
Махешмн
У меня есть хранилище изображений. Изображения являются двоичными данными. В этом репо нет текстовых файлов. GitHub везде сообщает, что он потребляет 0 байтов. Даже сайт / плагин.
Джерри Додж
0
Подводя итог решениям @larowlan, @VMTrooper и @vahid chakoshy:
#!/usr/bin/env bashif["$#"-eq 2];then
echo "$(echo "scale=2; $(curl https://api.github.com/repos/$1/$2 2>/dev/null \
| grep size | head -1| tr -dc '[:digit:]')/1024" | bc)MB"elif["$#"-eq 3]&&["$1"=="-z"];then# For some reason Content-Length header is returned only on second try
curl -I https://codeload.github.com/$2/$3/zip/master &>/dev/null
echo "$(echo "scale=2; $(curl -I https://codeload.github.com/$2/$3/zip/master \
2>/dev/null | grep Content-Length| cut -d' '-f2 | tr -d '\r')/1024/1024" \
| bc)MB"else
printf "Usage: $(basename $0) [-z] OWNER REPO\n\n"
printf "Get github repository size or, optionally [-z], the size of the zipped\n"
printf "master branch (`Download ZIP` link on repo page).\n"
exit 1fi
Ответы:
Есть способ получить доступ к этой информации через GitHub API .
GET /repos/:user/:repo
При получении информации о репозитории указанное свойство
size
оценивается размером всего хранилища (включая всю его историю) в килобайтах.Например, репозиторий Git весит около 124 МБ.
size
Свойство возвращенного JSON полезной нагрузки переоцененный124283
.Обновить
Размер действительно выражается в килобайтах в зависимости от использования диска в голом хранилище на стороне сервера. Однако, чтобы не тратить слишком много места на репозитории с большой сетью, GitHub использует Git Alternates . В этой конфигурации при расчете использования диска с использованием чистого хранилища не учитывается хранилище общих объектов, и, таким образом, возвращается «неполное» значение через вызов API.
Эта информация была предоставлена поддержкой GitHub.
источник
$ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}
. См developer.github.com/v3/#authenticationЕсли вы являетесь владельцем репозитория, точный размер можно узнать, открыв « Настройки учетной записи» → « Репозитории» ( https://github.com/settings/repositories ), и размер репозитория отображается рядом с его назначением.
Если вы не являетесь владельцем репозитория, вы можете его разветвить, а затем проверить в том же месте.
Несколько странно: используйтеdownload as a zip file
опцию, прочитайте указанный размер файла и затем отмените его.Я не помню, работала ли когда-либо загрузка в формате zip, но в любом случае, теперь она загружает только выбранную ветку без истории.
источник
Settings > Repositories
, но вместо этого нашел размер репо подAccount Settings > Repositories
вашей домашней страницей git. Конечно, это работает только с репо, которые у вас есть (или форк).Если вы используете браузер Google Chrome, вы можете установить расширение GitHub Repository Size .
Репо здесь: https://github.com/harshjv/github-repo-size
источник
@larowlan отличный пример кода. С новым GitHub API V3 оператор curl должен быть обновлен. Также, логин больше не требуется:
Например:
возвращает
931668
(в КБ), что почти в ГБ.источник
Чтобы сделать это с помощью curl (sudo apt-get curl) и json pretty (sudo gem установите jsonpretty json):
Замените YOURGITHUBUSERNAME своим именем пользователя GitHub (см. Рисунок).
Замените ВЛАДЕЛЬЦА на имя пользователя Git владельца хранилища. Замените хранилище именем хранилища.
Или как хороший скрипт Bash (вставьте его в файл с именем gitrepo-info):
Используйте это так:
Это даст мне информацию о хранилище pisi / reel на GitHub.
источник
Вы должны следовать GitHub API. Смотрите документацию здесь для всех деталей, касающихся вашего хранилища. Это требует от вас сделать запрос GET как:
GET / repos /: owner /: хранилище
Вам необходимо заменить две вещи:
Например, мое имя пользователя maheshmnj , и у меня есть хранилище, flutter-ui-nice , поэтому мой GET URL будет:
При выполнении запроса GET вы будете заполнены некоторыми данными JSON, и, вероятно, в строке номер 78 вы увидите ключ с именем size , который вернет размер хранилища.
Совет: При работе с JSON я предлагаю вам добавить плагин, который форматирует данные JSON, чтобы упростить чтение JSON. Установите плагин .
источник
size
ключ в ответе, а не строку 78. Не говоря уже о том, что разные форматеры будут иметь разные разрывы строк в разных местах, оставляя желаемые данные под другим номером строки.probably
увидеть его в строке № 78, так что это означает, что вы должны увидеть ключ размера где-то около 78 Во-вторых, если размер из github apis был неточным, я не думаю, что вы найдете что-то более точное, чем github apis.Подводя итог решениям @larowlan, @VMTrooper и @vahid chakoshy:
источник
Для частного хранилища вам необходимо получить токен личного доступа по адресу https://github.com/settings/tokens .
Затем используйте следующую команду curl, чтобы получить подробности (подставляя значения в [token], [owner] и [name]):
Как упоминалось ранее, размер может быть в МБ или КБ.
источник