remota - ¿Ves el tamaño de un repositorio de github antes de clonarlo?
git push tag (6)
¿Hay alguna manera de ver qué tan grande es un repositorio git en github antes de decidir clonarlo? Esto parece una estadística realmente obvia / básica pero no puedo encontrar la forma de verlo en github en absoluto.
@larowlan gran código de ejemplo. Con la nueva API de GitHub V3, la declaración de curvatura debe actualizarse. Además, el inicio de sesión ya no es necesario:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc ''[:digit:]''
Hay una manera de acceder a esta información a través de la API de GitHub .
- sintaxis :
/repos/:user/:repo [GET]
- Ejemplo: https://api.github.com/repos/git/git
Al recuperar información sobre un repositorio, una propiedad denominada size
se valora con el tamaño de todo el repositorio (incluido todo su historial), en kilobytes.
Por ejemplo, el repositorio de Git pesa alrededor de 40Mb. La propiedad de size
de la carga útil JSON devuelta se valora en 40764
.
Actualizar:
De hecho, el tamaño se expresa en kilobytes según el uso del disco del repositorio simple del lado del servidor. Sin embargo, para evitar perder demasiado espacio con repositorios con una red grande, GitHub confía en Git Alternates . En esta configuración, el cálculo del uso del disco contra el repositorio simple no tiene en cuenta el almacén de objetos compartidos y, por lo tanto, devuelve un valor "incompleto" a través de la llamada a la API.
Esta información ha sido dada por el soporte de GitHub.
Para hacer esto con curl (sudo apt-get curl) y json pretty (sudo gem install jsonpretty json)
curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPO |
jsonpretty
reemplace YOURGITHUBUSERNAME con su nombre de usuario de git hub (ver figura). reemplace el PROPIETARIO con el nombre de usuario git del propietario del repositorio reemplace REPO con el nombre del repositorio.
O como un buen script de bash (pegue esto en un archivo llamado gitrepo-info)
#!/bin/bash
if [ $# -ne 3 ]
then
echo "Usage: gitrepo-info <username> <owner> <repo>"
exit 65
fi
curl -u "$1" http://github.com/api/v2/json/repos/show/$2/$3|jsonpretty
usar como tal
gitrepo-info larowlan pisi reel
Esto me dará información sobre el repositorio de pisi / reel en github.
Para resumir las soluciones @larowlan, @VMTrooper y @vahid chakoshy:
#!/usr/bin/env bash
if [ "$#" -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 1
fi
Si es el propietario del repositorio, puede encontrar el tamaño exacto abriendo Account Settings > Repositories
, y el tamaño del repositorio se muestra junto a su designación.
Si no posee el repositorio, puede bifurcarlo y luego verificarlo en el mismo lugar.
Algo hacky: usa la opción de download as a zip file
, lee el tamaño de archivo indicado y luego cancela.
No recuerdo si la descarga como zip funcionó, pero en cualquier caso, hacerlo ahora solo descarga la rama seleccionada actualmente sin historial.
Si utiliza el navegador Google Chrome, puede instalar la extensión de tamaño de repositorio GitHub .
Repo aquí: github.com/harshjv/github-repo-size