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.
2 Stimmen
Mögliche Duplikate von Ist es möglich, Objekt und Größe des Git-Repositorys fernzuzählen?
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
0 Stimmen
Hier ein Hinweis: Mein absolut größtes Repository enthält nur Bilder in verschiedenen Formaten, es ist ein "Artwork"-Repository mit Symbolen, die ich in verschiedenen Anwendungen verwende. Dennoch meldet GitHub die Größe als 0. Ich gehe also davon aus, dass es nur die Größe bekannter Quelldateien berücksichtigt und unbekannte Dateitypen nicht berücksichtigt.
4 Stimmen
Nachdem ich gesehen habe, wie beliebt diese Frage ist, habe ich eine Website für genau diesen Zweck eingerichtet. Besuchen Sie aquí .