मैं इसे क्लोन करने से पहले GitHub रिपॉजिटरी का आकार कैसे देख सकता हूं?


330

क्या यह देखने का एक तरीका है कि GitHub पर Git रिपॉजिटरी कितना बड़ा है इससे पहले कि आप इसे क्लोन करने का फैसला करें?

यह वास्तव में स्पष्ट / बुनियादी आँकड़ा जैसा लगता है, लेकिन मैं इसे GitHub पर बिल्कुल नहीं देख पा रहा हूँ।



4
@KennyTM बहुत ही समान प्रश्न है, हां, लेकिन यह केवल गिट प्रोटोकॉल का उपयोग करने वाले किसी भी तरीके के बजाय जीथब के लिए विशिष्ट है।
jhabbott

1
FYI करें, इस क्रोम एक्सटेंशन की जांच करें जो स्वचालित रूप से GitHub के भंडार सारांश github.com/harshjv/github-repo-size में रिपॉजिटरी आकार जोड़ता है । अद्यतन: इसे उत्तर के रूप में जोड़ा गया
हर्ष वखारिया

यहाँ एक संकेत है: मेरी पूर्ण सबसे बड़ी रिपॉजिटरी में केवल विभिन्न स्वरूपों की छवियां हैं, यह एक "कलाकृति" है जो कि मैं विभिन्न ऐप्स में उपयोग करता हूं। फिर भी, GitHub 0. के रूप में आकार की रिपोर्ट करता है। इसलिए मैं मान रहा हूं कि यह केवल ज्ञात स्रोत फ़ाइलों के आकार पर विचार करता है, और अज्ञात फ़ाइल प्रकारों पर विचार नहीं करता है।
जेरी डॉज

जवाबों:


276

GitHub API के माध्यम से इस जानकारी तक पहुंचने का एक तरीका है ।

जब एक रिपॉजिटरी के बारे में जानकारी प्राप्त की जाती है, तो एक संपत्ति का नाम sizeपूरे रिपॉजिटरी के आकार (इसके इतिहास के सभी सहित) के साथ किलोबाइट्स में मूल्यवान होता है।

उदाहरण के लिए, Git रिपॉजिटरी का वजन लगभग 124 MB है। sizeलौटे JSON पेलोड की संपत्ति का मूल्य है 124283

अपडेट करें

आकार वास्तव में सर्वर-साइड नंगे भंडार के डिस्क उपयोग के आधार पर किलोबाइट्स में व्यक्त किया गया है। हालांकि, एक बड़े नेटवर्क के साथ रिपॉजिटरी के साथ बहुत अधिक जगह बर्बाद करने से बचने के लिए, GitHub Git Alternates पर निर्भर करता है । इस कॉन्फ़िगरेशन में, नंगे रिपॉजिटरी के खिलाफ डिस्क उपयोग की गणना साझा ऑब्जेक्ट स्टोर के लिए नहीं होती है और इस तरह एपीआई कॉल के माध्यम से "अपूर्ण" मान देता है।

यह जानकारी GitHub सपोर्ट द्वारा दी गई है।


12
एमबी में अब आकार नहीं है -> यह स्पष्ट नहीं है, ऐसा लग रहा है कि यह रेपो पर बोली जाने पर निर्भर करता है ... बाइट्स में छोटे रेपो आकार का आकार, मेगाबाइट में बड़े वाले। मैंने GitHub समर्थन पर एक समस्या खोली है। जैसे ही समस्या बंद होगी मैं उत्तर को अपडेट कर दूंगा।
नल्टोकेन

6
यह निजी रेपो के लिए काम नहीं करता है। क्या मैं कुछ भूल रहा हूँ? धन्यवाद!
nroose

14
@nroose ट्राई करें $ curl -u "{:username}" https://api.github.com/repos/{:organization}/{:repository}डेवलपर
Github.com/v3/#authentication

1
@nulltoken kB / MB आदि के बारे में पूछे जाने वाले प्रश्न पर कोई प्रतिक्रिया?
nealmcb

2
बस एक रेपो (9 सितंबर, 2018) को फोर्क किया और यह kB है, एमबी नहीं
जैकब स्टैम

109

यदि आप रिपॉजिटरी के मालिक हैं, तो आप अपनी खाता सेटिंग्सरिपॉजिटरी ( https://github.com/settings/repositories ) खोलकर सटीक आकार पा सकते हैं , और इसके आकार के आगे रिपॉजिटरी आकार प्रदर्शित होता है।

यदि आपके पास रिपॉजिटरी नहीं है, तो आप इसे कांटा कर सकते हैं और फिर उसी स्थान पर चेक कर सकते हैं।

कुछ हद तक हैकी: download as a zip fileविकल्प का उपयोग करें , इंगित फ़ाइल आकार पढ़ें और फिर इसे रद्द करें।

मुझे याद नहीं है कि क्या कभी जिप के रूप में डाउनलोड किया गया था, लेकिन किसी भी मामले में, ऐसा करने से अब केवल वर्तमान में चयनित शाखा डाउनलोड होती है जिसका कोई इतिहास नहीं है।


क्या किसी को जिप कम्प्रेशन का ध्यान नहीं रखना चाहिए? स्रोत कोड और पाठ फ़ाइलों को लगभग 60% तक संकुचित किया जा सकता है जो मुझे लगता है।
21

मैं डाउनलोड पूरा किए बिना ज़िप के संपीड़न अनुपात की जांच करने के तरीके से अनजान हूं। बेशक आप डाउनलोड को पूरा कर सकते हैं और फिर संपीड़न अनुपात की जांच कर सकते हैं। हालाँकि, उस बिंदु पर, आप अनज़िप भी कर सकते हैं और सीधे रेपो आकार की जाँच कर सकते हैं। यह वास्तव में इस बात पर निर्भर करता है कि आपको कितना सटीक होना चाहिए। और यदि आप चेक करने के लिए रेपो डाउनलोड करने का खर्च उठा सकते हैं।
CoatedMoose

1
मैं इसे नहीं ढूँढ सका Settings > Repositories, लेकिन इसके बजाय Account Settings > Repositoriesआपके git होम पेज के नीचे रेपो आकार मिला । बेशक, यह केवल रिपॉजिट के साथ काम करता है जो आप (या कांटा) के मालिक हैं।
modulitos

संगठनों की खाता सेटिंग रेपो आकार दिखाने के लिए नहीं दिखाई देती है, इसलिए यह केवल तभी है जब आप एक उपयोगकर्ता के रूप में रेपो के मालिक हैं और संगठन के रूप में नहीं?
बेनेट ब्राउन

2
ज़िप फ़ाइल का आकार वास्तविक रिपॉजिटरी आकार के सभी पर कोई संकेत नहीं है : 1) इसमें केवल एक दिए गए संशोधन पर रिपॉजिटरी का स्नैपशॉट शामिल है जिसमें कोई इतिहास नहीं है और 2) गेट रिपॉजिटरी को पैक फ़ाइलों के रूप में संग्रहीत किया जाता है जो संकुचित हैं, नहीं दुकान डुप्लिकेट आदि
kynan

74

यदि आप Google Chrome ब्राउज़र का उपयोग करते हैं तो आप GitHub रिपॉजिटरी साइज़ एक्सटेंशन इंस्टॉल कर सकते हैं ।

यहां छवि विवरण दर्ज करें

रेपो यहाँ: https://github.com/harshjv/github-repo-size


4
किसी भी फ़ायरफ़ॉक्स पोर्ट?
बन्नी इशाक के

2
@BaneeIshaqueK इसके समान नहीं है, लेकिन यह आपको रेपो साइज दिखाती है, इसे यहां देखें
सैयद शमीख शब्बीर

1
अद्यतन करें, जब तक आप गिटब टोकन प्रदान करते हैं, तब तक पूरी तरह से निजी रिपॉजिटरी में भी पूरी तरह से काम करता है।
सिद्धान्त रिमल

2
अभी भी विश्वसनीय नहीं है, यह गिटहब एपीआई का उपयोग करता है, जो सही आकार की रिपोर्ट नहीं करता है। मेरे पास छवियों (बिना कोड) के साथ एक रिपॉजिटरी है, और एपीआई आकार को 0 के रूप में रिपोर्ट करता है, हालांकि यह मेरे पास सबसे बड़ा रेपो है। यह एक्सटेंशन मुझे इस विशेष रेपो का आकार भी नहीं दिखाता (शायद इसलिए कि यह 0 देखता है)।
जेरी डॉज

19

@ लिलावन महान नमूना कोड। नए GitHub API V3 के साथ, कर्ल स्टेटमेंट को अपडेट करने की आवश्यकता है। इसके अलावा, लॉगिन की अब आवश्यकता नहीं है:

curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'

उदाहरण के लिए:

curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'

रिटर्न 931668(KB में), जो लगभग एक जीबी है।


5
यह निजी रेपो के लिए काम नहीं करता है। क्या मैं कुछ छोड़ रहा हूं? धन्यवाद!
nroose

1
मेरी इच्छा है कि आप कुछ स्पष्टीकरणों के साथ अपने उत्तर का विस्तार करें, ताकि लोग अपनी आवश्यकताओं के अनुरूप इसे बदल सकें।
शिम्मी वेइटहैंडलर

10

कर्ल के साथ ऐसा करने के लिए (sudo apt-get curl) और json pretty (sudo gem install jsonpretty sson:

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

अपने GitHub उपयोगकर्ता नाम (जाने का आंकड़ा) के साथ अपनी जगह बदलें।

रिपॉजिटरी के मालिक के उपयोगकर्ता नाम के साथ OWNER को बदलें। रिपॉजिटरी को रिपॉजिटरी नाम से बदलें।

या एक अच्छी बैश स्क्रिप्ट के रूप में (इसे 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

इसका उपयोग ऐसे करें:

gitrepo-info larowlan pisi reel

यह मुझे GitHub पर pisi / reel रिपॉजिटरी की जानकारी देगा ।


1

आपको GitHub API का अनुसरण करने की आवश्यकता है। अपनी रिपॉजिटरी के बारे में सभी विवरणों के लिए यहां दस्तावेज देखें । इसके लिए आपको एक GET अनुरोध करना होगा:

GET / रेपो /: मालिक /: रिपॉजिटरी

आपको दो चीजें बदलनी होंगी:

  1. : मालिक - उस व्यक्ति का उपयोगकर्ता नाम जो भंडार का मालिक है
  2. : रिपॉजिटरी - रिपॉजिटरी का नाम

उदाहरण के लिए, मेरा उपयोगकर्ता नाम महेशमंज , और मेरे पास एक रिपॉजिटरी, स्पंदन-उई-अच्छा है , इसलिए मेरा GET URL होगा:

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

GET अनुरोध करने पर, आपको कुछ JSON डेटा के साथ बाढ़ आ जाएगी और शायद लाइन नंबर 78 पर आपको एक कुंजी नाम आकार देखना चाहिए जो रिपॉजिटरी का आकार वापस कर देगा।

युक्ति: JSON के साथ काम करते समय मैं आपको एक प्लगइन जोड़ने का सुझाव देता हूं जो JSON को पढ़ने में आसान बनाने के लिए JSON डेटा को प्रारूपित करता है। प्लगइन स्थापित करें


ए) जैसा कि कई रिपोर्ट कर रहे हैं, यह आकार सही नहीं है और विश्वसनीय नहीं है। बी) यहां तक ​​कि अगर यह, JSON, लाइन नंबर, और स्वरूपण ... नेत्रहीन पढ़ने के बारे में आपका नोट है। JSON का मतलब मनुष्यों के पढ़ने के लिए नहीं है, यह कंप्यूटर को पढ़ने के लिए है। आपको sizeजवाब में कुंजी को पढ़ने के लिए उल्लेख किया जाना चाहिए , रेखा 78 पर नहीं। उल्लेख नहीं करने के लिए, विभिन्न फॉर्मेटर्स के पास अलग-अलग स्थानों पर अलग-अलग लाइन ब्रेक होंगे, वांछित डेटा को एक अलग लाइन नंबर पर छोड़ना होगा।
जेरी डॉज

@ जेरीडॉज पहली बात यह है कि आपने मेरे द्वारा बताए गए उत्तर को ध्यान से पढ़ा होगा `` आपको एक महत्वपूर्ण नाम का आकार देखना चाहिए `` `और मैंने कहा कि आपको probablyइसे लाइन नंबर 78 पर देखना चाहिए , ताकि यह संकेत मिले कि आपको आकार कुंजी 78 के आसपास कहीं दिखनी चाहिए। , दूसरी बात अगर गीथूब एपिस से आकार सटीक नहीं था, तो मुझे नहीं लगता कि आप जीथब एपिस की तुलना में कुछ अधिक सटीक पाएंगे।
महेशमंज

मेरे पास छवियों का भंडार है। छवियाँ बाइनरी डेटा हैं। इस रेपो में कोई टेक्स्ट फाइल नहीं हैं। GitHub हर जगह रिपोर्ट करता है कि वह 0 बाइट्स का उपभोग करता है। यहां तक ​​कि वेबसाइट / प्लगइन।
जेरी डॉज

0

@Lrowlan, @VMTrooper, और @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

0

एक निजी रिपॉजिटरी के लिए, आपको https://github.com/settings/tokens से एक निजी एक्सेस टोकन प्राप्त करना होगा ।

फिर विवरण प्राप्त करने के लिए निम्नलिखित कर्ल कमांड का उपयोग करें ([टोकन], [स्वामी] और [नाम] के मानों में प्रतिस्थापित):

curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size

जैसा कि पहले उल्लेख किया गया है, आकार एमबी या केबी में हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.