568 Stimmen

Wie kann ich die Größe eines GitHub-Repositorys sehen, bevor ich es klone?

Gibt es eine Möglichkeit zu sehen, wie groß ein Git-Repository auf GitHub ist, bevor man sich entscheidet, es zu klonen?

Dies scheint eine wirklich offensichtliche/grundlegende Statistik zu sein, aber ich kann nicht herausfinden, wie man sie auf GitHub überhaupt sehen kann.

2 Stimmen

5 Stimmen

@KennyTM sehr ähnliche Frage, ja, aber dies ist spezifisch für Github und nicht für jede Methode, die nur das Git-Protokoll verwendet.

3 Stimmen

FYI, schauen Sie sich diese Chrome-Erweiterung an, die automatisch die Repository-Größe zur GitHub-Repository-Zusammenfassung hinzufügt github.com/harshjv/github-repo-size . UPDATE: Dies wurde als Antwort hinzugefügt

28voto

Nathan Weiler Punkte 257

Wenn Sie versuchen, die Größe Ihrer eigenen Repositories herauszufinden.

Alles, was Sie tun müssen, ist auf GitHub Einstellungen Repositories gehen und Sie sehen alle Größen direkt im Browser keine zusätzliche Arbeit erforderlich.

https://github.com/settings/repositories

2 Stimmen

Dies scheint nicht mehr angezeigt zu werden.

8 Stimmen

Ab dem 05. Februar 2022 scheint dies für das persönliche Profil zu funktionieren, aber nicht für Repositories in Organisationen.

11voto

larowlan Punkte 159

Um dies mit curl (sudo apt-get curl) und json pretty (sudo gem install jsonpretty json) zu tun:

curl -u "YOURGITHUBUSERNAME" http://github.com/api/v2/json/repos/show/OWNER/REPOSITORY |
  jsonpretty

Ersetzen Sie YOURGITHUBUSERNAME durch Ihren GitHub-Benutzernamen (stellen Sie sich vor).

Ersetzen Sie OWNER durch den Git-Benutzernamen des Repository-Besitzers. Ersetzen Sie REPOSITORY durch den Namen des Repositorys.

Oder als nettes Bash-Skript (fügen Sie es in eine Datei namens gitrepo-info ein):

#!/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

Verwenden Sie es so:

gitrepo-info larowlan pisi reel

Dies wird mir Informationen über die pisi/reel Repository auf GitHub.

10voto

woolfi makkinan Punkte 149

Wie in anderen Antworten gezeigt, ist es möglich, eine Größe über api.github.com . Es ist in der size Eigenschaft eines zurückgegebenen JSON-Objekts.

Fügen Sie dazu einfach eine zusätzliche Subdomain zu Ihrer Repo-URL hinzu api und erweitern Sie den Repo-Pfad mit /repos :

# For public repos ->
#     Repo example: Axios
#     Repo URL: https://github.com/axios/axios

curl https://api.github.com/repos/axios/axios

# For private repos ->
#   Repo example: My-repo
#   Repo URL: https://github.com/my-org/my-repo

curl https://{username}:{api-token}@api.github.com/repos/{orgname}/{reponame}

Da es sich nur um eine URL handelt, können Sie die Daten mit einer beliebigen Programmiersprache abrufen.

Die Antwort wird wie folgt lauten:

// Much more props inside
{
  "id": 23088740,
  "name": "axios",
  "full_name": "axios/axios",
  "private": false,
  "size": 4396,
  "default_branch": "v1.x",
  "visibility": "public",
  "network_count": 9581,
  "subscribers_count": 1213
}

Das Wichtigste für uns ist size . Es ist in Kb jetzt, aber es könnte in Zukunft geändert werden (wie es bereits geschehen ist).

Aber... Ich habe es viele Male getestet und festgestellt, dass die tatsächliche Größe des Repos und die Größe, die mit dem obigen Mechanismus angezeigt wird, zu unterschiedlich sind.

Geben wir das gleiche axios Repo:

  • die in api.github.com angegebene Größe -> 4396 Kb -> ~ 4.29 Mb

Was ist, wenn Sie eine vollständige Repo klonen:

  • ziehen Sie das Repository mit clone repo.git comando
  • Gewicht erhalten mit Befehl du -sh ./axios
  • haben -> 8.0 Mb
  • entfernen .git Ordner von innen
  • haben -> 2.6 Mb

nicht gut, da size ~ 4.29 Mb ist nicht 8 o 2.6 Mb entweder

Was, wenn man nur die letzte Übertragung klont:

  • ziehen Sie das Repository mit --depth 1 Flagge, wie clone repo --depth 1
  • Gewicht erhalten mit Befehl du -sh ./axios
  • haben -> 3.2 Mb ( that's close )
  • entfernen .git Ordner von innen
  • haben -> gleich 2.6 Mb

nicht gut, da size ~ 4.29 Mb ist nicht 3.2 o 2.6 Mb entweder

Was, wenn man nur einen Zweig klont:

  • in dem obigen JSON haben wir einen Parameter, genannt default_branch . Lass uns klonen
  • ziehen Sie das Repository mit -b v1.x --single-branch Flaggen
  • Gewicht erhalten mit Befehl du -sh ./axios
  • haben -> 7.5 Mb ( that's close )
  • entfernen .git Ordner von innen ergibt das gleiche 2.6 Mb

immer noch nicht gut, da size ~ 4.29 Mb ist nicht 7.5 o 2.6 Mb entweder

Daher ist die size param zeigt etwas, das dem letzten Commit sehr nahe kommt, aber es ist nicht die absolut richtige Größe des Repos.

Ich habe oben gezeigt, wie es funktioniert mit axios Repos, aber Tests mit anderen Repos zeigen die gleichen Ergebnisse.

Das ist meine Erfahrung.

0 Stimmen

Fügen Sie besser Ihre Referenzen hinzu.

0 Stimmen

Wahr. Auch ich habe den Unterschied zwischen der API-Antwort und der tatsächlichen du

4voto

Artyom Punkte 2447

Wenn Sie die offizielle GitHub CLI installiert haben, können Sie Folgendes tun:

gh api repos/<org>/<repo> --jq '.size'

Ich glaube, er meldet die Größe in KBs.

3voto

Mahesh Jamdade Punkte 11281

Sie müssen die GitHub-API verwenden. Siehe die Dokumentation ici für alle Details zu Ihrem Repository. Dazu müssen Sie eine GET Anfrage als:

GET /repos/:Eigentümer/:Repository

Sie müssen zwei Dinge ersetzen:

  1. :Besitzer - den Benutzernamen der Person, die Eigentümer des Repositorys ist
  2. :repository - Der Name des Repositorys

Z.B., mein Benutzername maheshmnj und ich besitze ein Repository, flatter-ui-nice Meine GET-URL wird also lauten:

https://api.github.com/repos/maheshmnj/flutter-ui-nice

Wenn Sie eine GET-Anfrage stellen, werden Sie mit einigen JSON-Daten überflutet, und wahrscheinlich sollten Sie in Zeile 78 einen Schlüssel namens Größe die die Größe des Repositorys zurückgibt.

Tipp: Wenn Sie mit JSON arbeiten, empfehle ich Ihnen, ein Plugin hinzuzufügen, das die JSON-Daten formatiert, um das Lesen von JSON zu erleichtern. Installieren Sie das Plugin .

1 Stimmen

A) Wie viele berichten, ist diese Größe nicht genau und nicht zuverlässig. B) Selbst wenn es war, Ihre Anmerkung(en) über visuelle Lesen der JSON, die Zeilennummer, und die Formatierung... alle sinnlos. JSON ist nicht zum Lesen für Menschen gedacht, sondern für Computer zum Lesen. Sie sollten erwähnen, dass Sie die size Taste in der Antwort, nicht in Zeile 78. Ganz zu schweigen davon, dass verschiedene Formatierer an verschiedenen Stellen unterschiedliche Zeilenumbrüche haben, so dass die gewünschten Daten an einer anderen Zeilennummer stehen.

0 Stimmen

@JerryDodge zunächst sollten Sie sorgfältig lesen Sie die Antwort habe ich erwähnt ``` Sie sollten einen Schlüssel namens Größe ``` und ich sagte, Sie sollten probably sehen Sie es auf Zeile Nr. 78, so dass zeigt, dass Sie die Größe Schlüssel irgendwo um 78, zweite Sache, wenn die Größe von der Github-Api nicht genau war, ich glaube nicht, dass Sie etwas genauer als Github-Api finden.

2 Stimmen

Ich habe ein Repository von Bildern. Bilder sind binäre Daten. Es gibt überhaupt keine Textdateien in diesem Repository. GitHub meldet überall, dass es 0 Bytes verbraucht. Auch die Website / Plugin.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X