GitHub रेपो से एक एकल फ़ोल्डर या निर्देशिका डाउनलोड करें


1105

मैं GitHub पर होस्ट किए गए दूरस्थ Git रेपो से केवल एक विशिष्ट फ़ोल्डर या निर्देशिका कैसे डाउनलोड कर सकता हूं?

कहो उदाहरण GitHub रेपो यहाँ रहता है:

git@github.com:foobar/Test.git

इसकी निर्देशिका संरचना:

Test/
├── foo/ 
│   ├── a.py
│   └── b.py   
└── bar/
    ├── c.py
    └── d.py

मैं केवल foo फ़ोल्डर डाउनलोड करना चाहता हूं और पूरे टेस्ट प्रोजेक्ट को क्लोन नहीं करना चाहता ।


4
मैंने इसके लिए svn checkout - github.com/Decad/github-downloader
Declan Cook

390
क्या कोई मुझे समझा सकता है कि इसके लिए "आधिकारिक" वेब-इंटरफ़ेस समाधान क्यों नहीं है? यह लागू करने के लिए एक तुच्छ सुविधा की तरह लगता है, फिर भी सुपर उपयोगी है।
अलेक्जेंडर -

3
मैंने KinoLien के gitzip का उपयोग करके क्रोम एक्सटेंशन विकसित किया। github.com/charany1/GHSDD
charany1

3
देखें @janos उत्तर svn विकल्प सबसे अच्छा है, कोई सामान्य नहीं, कोई पंजीकरण नहीं, कोई सीमा नहीं, कोई प्लग
stackdave

5
मैंने इसके लिए एक हल्का समाधान बनाया ( download-directory.github.io ) और इसे परिष्कृत GitHub
18'18

जवाबों:


1034

अद्यतन सितंबर 2016: समुदाय द्वारा बनाए गए कुछ उपकरण हैं जो आपके लिए ऐसा कर सकते हैं:


Git इसका समर्थन नहीं करता है, लेकिन Github SVN के माध्यम से करता है। यदि आप अपने कोड को तोड़फोड़ के साथ जांचते हैं, तो Github अनिवार्य रूप से बैक पर बैक से तोड़फोड़ करने के लिए रेपो को बदल देगा, फिर अनुरोधित निर्देशिका की सेवा करें।

यहां बताया गया है कि आप विशिष्ट फ़ोल्डर डाउनलोड करने के लिए इस सुविधा का उपयोग कैसे कर सकते हैं। मैं lodashएक उदाहरण के रूप में लोकप्रिय जावास्क्रिप्ट लाइब्रेरी का उपयोग करूँगा ।

  1. उस फ़ोल्डर पर नेविगेट करें जिसे आप डाउनलोड करना चाहते हैं । शाखा /testसे डाउनलोड करते हैं mastergithub रेपो URL उदाहरण

  2. तोड़फोड़ के लिए URL संशोधित करें । बदलें tree/masterके साथ trunk

    https://github.com/lodash/lodash/tree/master/test

    https://github.com/lodash/lodash/trunk/test

  3. फ़ोल्डर डाउनलोड करें । कमांड लाइन पर जाएं और एसवीएन के साथ फ़ोल्डर को पकड़ो।

svn checkout https://github.com/lodash/lodash/trunk/test

हो सकता है कि आपको कोई गतिविधि तुरंत न दिखे क्योंकि जीथूब को बड़ी रिपॉजिटरी में बदलने में 30 सेकंड लगते हैं, इसलिए धैर्य रखें।

पूर्ण URL प्रारूप विवरण:

  • यदि आप masterशाखा में रुचि रखते हैं , तो trunkइसके बजाय उपयोग करें । तो पूरा रास्ता हैtrunk/foldername
  • यदि आप fooशाखा में रुचि रखते हैं , तो branches/fooइसके बजाय उपयोग करें । पूरा रास्ता दिखता हैbranches/foo/foldername
  • Protip: svn lsयदि आप चाहें तो डाउनलोड करने से पहले उपलब्ध टैग और शाखाओं को देखने के लिए उपयोग कर सकते हैं

बस इतना ही! Github परिवर्तनों को आगे बढ़ाने और धक्का देने के लिए समर्थन सहित अधिक तोड़फोड़ सुविधाओं का समर्थन करता है


162
बहुत बढ़िया, बस के tree/masterसाथ बदलें trunkऔर आप विशिष्ट फ़ोल्डर प्राप्त कर सकते हैं।
सेरियो मिशेल्स

6
धन्यवाद @ user1146881 और @ SérgioMichels, आप को बदलने के लिए tree/masterके साथ trunk। इस जानकारी को उत्तर में जोड़ा जाना चाहिए।
बपतिस्मा

8
मैंने इसे उपयोग करने के लिए संशोधित किया svn export, क्योंकि मैं एक तोड़फोड़ की काम करने वाली कॉपी नहीं चाहता था। फिर मैंने गिट में परिणामी फ़ोल्डर को जोड़ा। (मैं किसी तरह अपनी निर्देशिका पेड़ का एक बड़ा टुकड़ा खो दिया है, इसलिए मैं रेपो से निर्यात किया मैं forked।)
Grault

5
@ num3ric- देर से उत्तर के लिए खेद है, लेकिन आपको "ट्रंक" को "शाखाओं / yourbranch" के साथ बदलने में सक्षम होना चाहिए
निक

2
@ElijahLynn संपादन के लिए धन्यवाद, मुझे उस जानकारी को शामिल करना चाहिए था! 2 चीजें हालांकि- मैंने आपका संपादन स्वीकार कर लिया, लेकिन अपना कुछ वापस ले लिया (इसका मतलब यह था कि यह वैसे भी करना था, यह बहुत गन्दा लगा)। इसके अतिरिक्त मैंने आपका branchरास्ता बदल दिया branches, जो मुझे लगता है कि सही है; यदि नहीं, तो आगे बढ़ें और इसे वापस बदलें।
निक

566

इस सुविधा के लिए दो विकल्प:

विकल्प 1: गिटज़िप ब्राउज़र एक्सटेंशन

क्रोम एक्सटेंशन , फ़ायरफ़ॉक्स एडऑन

उपयोग:

  1. किसी भी GitHub रिपो पेज में।
  2. अपनी ज़रूरत के सामान के खाली हिस्से पर बस डबल क्लिक करें।
  3. नीचे-दाईं ओर डाउनलोड बटन पर क्लिक करें।
  4. प्रगति डैशबोर्ड देखें और ब्राउज़र ट्रिगर डाउनलोड की प्रतीक्षा करें।
  5. जिप फाइल प्राप्त करें।

टोकन प्राप्त करें:

  1. अपने ब्राउज़र पर GitZip Extension आइकन पर क्लिक करें।
  2. "गेट टोकन" के अलावा "सामान्य" या "निजी" लिंक पर क्लिक करें।
  3. GitZip की अनुमति Gitub पृष्ठ पर अधिकृत करें।
  4. शुरुआत के रेपो पेज पर वापस।
  5. उपयोग जारी रखें।

विकल्प 2: जीथूब gh- पेज

GitHub API और JSZip, FileSaver.js लाइब्रेरी का उपयोग करके http://kinolien.github.io/gitzip

Step1: शीर्ष पर दाईं ओर फ़ील्ड में इनपुट github url।
स्टेप 2: सीधे जिप डाउनलोड करने के लिए एन्टर प्रेस करें या डाउनलोड पर क्लिक करें या सब-फोल्डर और फाइलों की सूची देखने के लिए खोज पर क्लिक करें।
चरण 3: फ़ाइलों को प्राप्त करने के लिए "डाउनलोड ज़िप फ़ाइल" या "फ़ाइल प्राप्त करें" बटन पर क्लिक करें।

ज्यादातर मामलों में, यह ठीक काम करता है, सिवाय इसके कि फ़ोल्डर में 1,000 से अधिक फाइलें हैं, क्योंकि गीथूब ट्री एपीआई की सीमा है। ( Github API # सामग्री को संदर्भित करता है )

और यह निजी / सार्वजनिक रिपो का भी समर्थन कर सकता है और दर सीमा को उन्नत कर सकता है, यदि आपके पास GitHub खाता है और इस साइट में "टोकन प्राप्त करें" लिंक का उपयोग करें।


5
यह कमाल है, लेकिन ऐसा लगता है कि इसकी इतनी जबरदस्त मांग आपको अपने रैलिमिट पर जोर दे रही है और इसलिए अब इसकी कोई आवश्यकता नहीं है ;-) यह GitHub oAuth के साथ लॉगिन करने में सक्षम होगा - जो निजी रेपो समर्थन की अनुमति देगा, और यह भी उकसाएगा। आपकी दर सीमा क्योंकि वे प्रमाणित अनुरोध होंगे
hobailey

3
@ होबेली अब, यह दर सीमा बढ़ाने के लिए एक्सेस टोकन प्राप्त कर सकती है, और निजी रिपोज भी एक्सेस कर सकती है।
किनो

1
@ मायनस ने गीथूब एपीआई डॉक्टर में ओथ, पेड़, ब्लब्स अध्याय के बारे में देखें , और भी gitzip कार्यान्वयन के लिए JSZip, FileSaver.js जेएस पुस्तकालयों का उपयोग करें।
किनो

1
क्या कोई क्रोम एक्सटेंशन में रुचि रखता है जो ऐसा करता है?
गोल्डलाइक्स

4
यह वास्तव में वास्तविक github वेबसाइट में जोड़ा जाना चाहिए, यह अत्यंत उपयोगी है।
रोल

508

डाउनगेट पर जाएं > अपना URL दर्ज करें> डाउनलोड करें!

अब, आप डाउनगेट से किसी भी GitHub सार्वजनिक निर्देशिका या फ़ाइल ( विशेष रूप से बड़ी फ़ाइल ) के लिए सीधे डाउनलोड कर सकते हैं या डाउनलोड लिंक बना सकते हैं ! यहाँ एक सरल प्रदर्शन है-


DownGit


आप डाउनलोड की गई फ़ाइल की संपत्ति- विस्तृत उपयोग को भी कॉन्फ़िगर कर सकते हैं ।


2
भाई, मेरा मतलब है कि आपके द्वारा बनाई गई डाउनगिट जैसी परियोजना कैसे बनाई जाए।
मुहम्मद यूनुस

12
आधार विधि है- 1. डायरेक्टरी लिंक (प्रयुक्त कोणीय-मार्ग ), 2. गिटहब एपीआई पर जाएं , 3. निर्देशिका के माध्यम से खोजें और सभी फाइलें डाउनलोड करें, 4. इसके साथ एक ज़िप फ़ाइल बनाएं (मैंने jszip का उपयोग किया है ) और इसे फ़ाइल के रूप में सहेजें ( इसके लिए फाइलसेवर का उपयोग किया गया )। स्पष्ट समझ के लिए मैं अपने प्रोजेक्ट पर एक नज़र डालने का सुझाव दूंगा
मिन्हास कमल

1
यदि आप किसी भी ट्यूटोरियल या लिंक का सुझाव देते हैं, तो विस्तृत निर्देशों के लिए thanx भाई, मैं आपका बहुत आभारी हूं।
मुहम्मद यूनुस

5
यह अच्छा है, लेकिन यह स्वचालित उपकरणों (जैसे wget) के साथ काम नहीं करता है
रिंग

1
downloaded 25 of 25 filesजब मैं इस URL से डाउनलोड करने का प्रयास करता हूं तो यह लटका रहता है : github.com/dssg/hitchhikers-guide/tree/master/curriculum/…
वासादामो

164

यदि आपके पास है svn, तो आप यह करने के svn exportलिए उपयोग कर सकते हैं :

svn export https://github.com/foobar/Test.git/trunk/foo

URL प्रारूप पर ध्यान दें:

  • आधार URL है https://github.com/
  • /trunk अंत में जोड़ा गया

आपके चलाने svn exportसे पहले, निर्देशिका की सामग्री को पहले सत्यापित करना अच्छा है:

svn ls https://github.com/foobar/Test.git/trunk/foo

क्या यह अभी भी काम करता है? इसे TortiseSVN के साथ आज़माया गया और मुझे एक अनुमति त्रुटि मिली, जिससे मुझे क्रेडेंशियल्स की आपूर्ति करने के लिए कहा गया।
जॉन

2
@ मुझे यकीन है कि यह बहुत मदद करने के लिए बहुत देर हो चुकी है, लेकिन क्या आपके पास आपके GitHub खाते पर 2-कारक प्रमाणीकरण सक्षम है? यदि ऐसा है, तो मुझे लगता है कि मैंने कहीं पढ़ा है कि आपको पासवर्ड के लिए एक पूर्व-निर्मित कुंजी का उपयोग करना होगा (जिसे आपको GitHub सेटिंग्स में खोजने की आवश्यकता होगी)।
निक

1
URL प्रारूपण के संबंध में, आप .gitएक्सटेंशन रख सकते हैं । आप पूर्ण प्रोजेक्ट लिंक का उपयोग कर सकते हैं, और svn lsप्रोजेक्ट पूर्ण पथ का अनुसरण करके प्रारंभ कर सकते हैं । उदाहरण: svn ls https://github.com/RobTillaart/Arduino.git। सिर्फ एक फ़ोल्डर निर्यात करने के लिए, आप बस /trunkइच्छित पथ के बाद, जैसे जोड़ना चाहते हैं svn export https://github.com/RobTillaart/Arduino.git/trunk/libraries/DHTlib। प्रोजेक्ट पथ को अक्षुण्ण रखना आसान है।
jgrocha

@ जोग्रोचा मुझे यकीन नहीं है कि इसने 2013 में इस तरह से काम किया था, लेकिन यह अब करता है, इसलिए धन्यवाद, पोस्ट को अपडेट किया
जोंस

1
एक उदाहरण: सामग्री को डाउनलोड करने https://github.com/miguelgrinberg/python-socketio/tree/master/examples/wsgi, चलाने के लिए svn export https://github.com/miguelgrinberg/python-socketio.git/trunk/examples/wsgiwsgiवर्तमान कार्यशील निर्देशिका के अंतर्गत एक निर्देशिका बनाई जाएगी। केवल स्रोत फ़ाइलें, और कुछ नहीं। नहीं .git, कोई तोड़फोड़ संबंधित फाइलें नहीं।
रॉकलाईट

74

जेनेरिक गिट रेपो के लिए:

यदि आप फ़ाइलों को डाउनलोड करना चाहते हैं, तो इतिहास के साथ रिपॉजिटरी को क्लोन न करें, आप इसके साथ कर सकते हैं git-archive

git-archivegit रिपॉजिटरी का संकुचित ज़िप या टार आर्काइव बनाता है। कुछ चीजें जो इसे खास बनाती हैं:

  1. आप चुन सकते हैं कि कौन सी फाइल या डायरेक्टरी git रिपॉजिटरी में संग्रह के लिए है।
  2. यह .git/फ़ोल्डर, या उस पर चलाए जा रहे रिपॉजिटरी में किसी भी अनट्रैक फ़ाइलों को संग्रहीत नहीं करता है ।
  3. आप किसी विशिष्ट शाखा, टैग या कमिट को संग्रहीत कर सकते हैं। जीआईटी के साथ प्रबंधित परियोजनाएं अक्सर उपयोगकर्ताओं को डाउनलोड करने के लिए प्रोजेक्ट के संस्करणों (बीटा, रिलीज़, 2.0, आदि) के अभिलेखागार उत्पन्न करने के लिए इसका उपयोग करती हैं।

docs/usageदूरस्थ रेपो से निर्देशिका का एक संग्रह बनाने का एक उदाहरण जो आप ssh के साथ जुड़ा हुआ है:

# in terminal
$ git archive --format tar --remote ssh://server.org/path/to/git HEAD docs/usage > /tmp/usage_docs.tar

इस ब्लॉग पोस्ट में अधिक जानकारी और गिट प्रलेखन

गिटहब रिपोज पर ध्यान दें:

GitHub git-archiveपहुँच की अनुमति नहीं देता है । ☹️


2
git archive --format tarप्रारूप टारगेट नहीं है, लेकिन टार है।
出 和 '

इसका सबसे अच्छा जवाब होना चाहिए
फेलिप कोस्टा

2
मुझे लगता है कि यह सबसे अच्छा जवाब है लेकिन ध्यान रखें कि git आर्काइव कमांड https प्रोटोकॉल के साथ काम नहीं करता है।
बिटकॉइन

@yukihane ने tar.gz से टार तक एक्सटेंशन को संपादित किया, उम्मीद है कि ओपी इस के साथ जहाज पर है
mihai

36

मैंने एक ओपन सोर्स प्रोजेक्ट बनाया है, जिसका नाम GitHubFolderDownloader है । यह आपको क्लोनिंग या रिपॉजिटरी को डाउनलोड किए बिना रिपॉजिटरी का एक फोल्डर डाउनलोड करने की सुविधा देता है।


बहुत अच्छा काम करता है अगर आपको केवल GitHub से फ़ोल्डर्स डाउनलोड करने की आवश्यकता है। यह केवल वांछित फ़ोल्डर डाउनलोड करने के लिए एक Github टोकन की आवश्यकता है । अधिक उत्थान इस उत्तर को कुछ प्रमुखता दे सकते हैं।
एलेक्स Essilfie

34

अन्य उत्तरों के साथ कुछ भी गलत नहीं है, लेकिन मैंने सोचा कि मैं पहली बार इस प्रक्रिया से भटकने वालों के लिए चरण-दर-चरण निर्देश साझा करूंगा।

गथब रिपॉजिटरी (मैक ओएस एक्स) से एकल फ़ोल्डर कैसे डाउनलोड करें:

~ टर्मिनल खोलने के लिए बस स्पॉटलाइट पर क्लिक करें और टर्मिनल टाइप करें फिर एंटर करें

  1. एक मैक पर आप पहले से ही SVN (बस खुले टर्मिनल का परीक्षण करने के लिए और "svn" या "जो svn" ~ बिना उद्धरण चिह्नों के) का परीक्षण करने की संभावना रखते हैं
  2. गितुब पर: गितुब पथ को अपने गॉइट फोल्डर (रेपो नहीं) में खोजें, जो किसी फोफो के विशिष्ट फ़ोल्डर के नाम पर क्लिक करके
  3. ब्राउज़र के एड्रेस बार से पथ को कॉपी करें
  4. टर्मिनल खोलें और टाइप करें: svn एक्सपोर्ट
  5. पते में अगला पेस्ट (उदा।): Https://github.com/mingsai/Sample-Code/tree/master/HeadsUpUI
  6. शब्दों को बदलें: ट्री / मास्टर
  7. शब्द के साथ: ट्रंक
  8. फ़ाइलों के लिए गंतव्य फ़ोल्डर में टाइप करें (इस उदाहरण में, मैं वर्तमान उपयोगकर्ता के लिए डाउनलोड फ़ोल्डर के अंदर लक्ष्य फ़ोल्डर संग्रहीत करता हूं)
  9. यहां स्पेस सिर्फ स्पेसबार है न कि शब्द (स्पेस) ~ / डाउनलोड्स / HeadsUpUI
  10. अंतिम टर्मिनल कमांड फ़ोल्डर को डाउनलोड करने के लिए पूर्ण कमांड दिखाता है (पते की तुलना चरण 5 में) svn निर्यात Export https://github.com/mingsai/Sample-Code/trunk/HeadsUpUI ~ / डाउनलोड / HeadsUpUI

BTW - यदि आप विंडोज या किसी अन्य प्लेटफॉर्म पर हैं, तो आप पर तोड़फोड़ (svn) का बाइनरी डाउनलोड पा सकते हैं http://subversion.apache.org

~ यदि आप फ़ोल्डर को चेकआउट करने के बजाय केवल इसे डाउनलोड करने का प्रयास करना चाहते हैं तो svn सहायता (tldr: निर्यात को प्रतिस्थापित करें) का उपयोग करें चेकआउट से ) का उपयोग करें

अपडेट करें

एक बाधित डाउनलोड / चेकआउट को फिर से शुरू करने पर टिप्पणी के बारे में। मैं svn cleanupबाद में चलाने की कोशिश करेंगे svn update। कृपया अतिरिक्त विकल्पों के लिए SO खोजें।


1
मुझे एक विशिष्ट फ़ोल्डर से कई फ़ाइलों को डाउनलोड करना है और डाउनलोड के बीच में यह त्रुटि मिली है: svn: E175002: '/ bgmartins / लिपियों / parlamento /! Svn / vcc / default' की रिपोर्ट: 200 OK ( github.com )! क्या आप डाउनलोड को फिर से शुरू कर सकते हैं?
मिगेल

मेरे लिए काम किया। वह आश्चर्यजनक है।
हीथ राफेरी

24

जो कोई भी विशिष्ट फ़ोल्डर पर काम कर रहा है, उसे उस विशेष फ़ोल्डर को स्वयं क्लोन करने की आवश्यकता है, ऐसा करने के लिए विरल चेकआउट का उपयोग करके चरणों का पालन करें।

  1. एक निर्देशिका बनाएँ।

  2. एक गिट रिपॉजिटरी को प्रारंभ करें। ( git init)

  3. स्पार्स चेकआउट सक्षम करें। ( git config core.sparsecheckout true)

  4. बताएं कि आपको कौन सी निर्देशिकाएं चाहिए (गूंज 2015 / ब्रांड / मई (आप जिस फ़ोल्डर पर काम करना चाहते हैं) देखें .git/info/sparse-checkout))

  5. रिमोट जोड़ें ( git remote add -f origin https://jafartke.com/mkt-imdev/DVM.git)

  6. फ़ाइलें प्राप्त करें ( git pull origin master)


बहुत बुरा इस टिप्पणी को पर्याप्त उभार नहीं मिला। ऐसा लगता है कि प्रदान किए गए समाधान सभी गिट रिपॉजिटरी पर लागू होते हैं, न कि सिर्फ गिटब वन।
कल्याण

9
यह वास्तव में क्या वांछित था, हालांकि नहीं है। यह अभी भी पूरे रिपॉजिटरी को क्लोन करता है, यह सिर्फ कुछ फ़ोल्डरों की जांच नहीं करता है।
क्रिस

यहां हल किया गया: stackoverflow.com/questions/4114887/…
JK

मुझे यह त्रुटि मिलती है: विरल चेकआउट कार्यशील निर्देशिका पर कोई प्रविष्टि नहीं छोड़ता है।
orangecaterpillar

20

आप नहीं कर सकते; तोड़फोड़ के विपरीत, जहां प्रत्येक उपनिर्देशिका को व्यक्तिगत रूप से जांचा जा सकता है, गिट पूरी-रिपॉजिटरी आधार पर संचालित होता है।

उन परियोजनाओं के लिए जहां महीन दाने का उपयोग आवश्यक है, आप सबमॉड्यूल का उपयोग कर सकते हैं - प्रत्येक सबमॉड्यूल एक अलग गिट प्रोजेक्ट है, और इस प्रकार व्यक्तिगत रूप से क्लोन किया जा सकता है।

यह बोधगम्य है कि Git फ्रंट-एंड (जैसे GitHub का वेब इंटरफ़ेस, या gitweb) आपको दिए गए फ़ोल्डर को निकालने के लिए एक इंटरफ़ेस प्रदान करने का विकल्प चुन सकता है, लेकिन मेरे ज्ञान में से कोई भी ऐसा नहीं करता है (हालांकि वे आपको व्यक्तिगत फ़ाइलों को डाउनलोड करने देते हैं , इसलिए यदि फ़ोल्डर में बहुत अधिक फाइलें नहीं हैं, तो वह एक विकल्प है)

संपादित करें - GitHub वास्तव में SVN के माध्यम से पहुँच प्रदान करता है, जो आपको केवल यह करने की अनुमति देगा (टिप्पणी के अनुसार)। यह कैसे करें के बारे में नवीनतम निर्देशों के लिए https://github.com/blog/1438-improved-svn-here-to-stay-old-svn-going-away देखें


क्या जीआईटब एपीआई के माध्यम से कोई बात है?
g_inherit

14

यदि आप वास्तव में केवल फ़ोल्डर को "डाउनलोड" करना चाहते हैं और इसे "क्लोन" नहीं करना चाहते हैं (विकास के लिए), तो बस रिपॉजिटरी के सबसे हाल के संस्करण की एक प्रतिलिपि प्राप्त करने का सबसे आसान तरीका है (और इसलिए इसके भीतर एक फ़ोल्डर / फ़ाइल), पूरे रेपो को क्लोन करने या यहां तक ​​कि पहली जगह पर गिट स्थापित करने की आवश्यकता के बिना, किसी भी रिपॉजिटरी / कांटा / शाखा / शाखा के लिए GitHub पर जाकर एक ज़िप संग्रह (किसी भी रेपो, कांटा, शाखा, प्रतिबद्ध, आदि के लिए) डाउनलोड करना है। (उदाहरण के http(s)://github.com/<user>/<repo>/commit/<Sha1>लिए फाइलों की एक प्रति के रूप में वे एक विशिष्ट प्रतिबद्ध के बाद थे) और Downloadsऊपरी-दाएं के पास बटन का चयन करना ।

इस संग्रह प्रारूप में कोई भी git-repo मैजिक नहीं है, बस ट्रैक की गई फ़ाइलें स्वयं (और शायद कुछ .गितिग्नोर फ़ाइलें यदि उन्हें ट्रैक किया गया था, लेकिन आप उन पर ध्यान नहीं दे सकते: p) - इसका मतलब है कि यदि कोड बदलता है और आप चाहते हैं शीर्ष पर रहें, आपको इसे मैन्युअल रूप से फिर से डाउनलोड करना होगा, और इसका मतलब यह भी है कि आप इसे गिट रिपॉजिटिव के रूप में उपयोग नहीं कर पाएंगे ...

निश्चित नहीं है कि आप इस मामले में क्या देख रहे हैं (फिर से, "डाउनलोड" / देखें "क्लोन" / विकसित), लेकिन फिर भी यह उपयोगी हो सकता है ...


9
यदि आपको कोई डाउनलोड लिंक दिखाई नहीं देता है, तो सुनिश्चित करें कि आप मुख्य रेपो पृष्ठ पर हैं (बाल निर्देशिका नहीं।) ऐसा लगता है कि आप केवल पूरे रेपो का ज़िप डाउनलोड कर सकते हैं। इसके अलावा, यह github सहायता पृष्ठ उपयोगी हो सकता है।
जेडी स्मिथ 16

2
आसान बिंदु और क्लिक एक्सेस। एक पूर्व रिलीज प्राप्त करना आसान है। डाउनलोड किए गए ज़िप से वांछित फ़ोल्डर को खींचना आसान है। धन्यवाद।
एंडी थॉमस

1
जेनेरिक URL से डाउनलोड करने के लिए tar.gz:https://github.com/${owner}/${repo}/archive/${hash}.tar.gz
Krisztian

11

2019 सारांश

इसे संभालने के लिए कई तरह के तरीके हैं, जो इस बात पर निर्भर करता है कि आप इसे मैन्युअल रूप से या प्रोग्रामेटिक रूप से करना चाहते हैं या नहीं।

नीचे संक्षेप में चार विकल्प दिए गए हैं। और उन लोगों के लिए जो अधिक हाथों पर स्पष्टीकरण पसंद करते हैं, मैंने एक YouTube वीडियो एक साथ रखा है: GitHub से व्यक्तिगत फ़ाइलें और फ़ोल्डर डाउनलोड करें

इसके अलावा, मैंने उन लोगों के लिए StackOverflow पर एक समान उत्तर पोस्ट किया है जिन्हें GitHub (जैसा कि फ़ोल्डर्स के विपरीत) से एकल फ़ाइलों को डाउनलोड करने की आवश्यकता है।


1. गिटहब यूजर इंटरफेस

  • रिपॉजिटरी के होमपेज पर डाउनलोड बटन है। बेशक, यह पूरे रेपो को डाउनलोड करता है, जिसके बाद आपको डाउनलोड को अनज़िप करने की आवश्यकता होगी और फिर मैन्युअल रूप से आपके द्वारा आवश्यक विशिष्ट फ़ोल्डर को बाहर खींचें।

2. थर्ड पार्टी टूल्स

  • कई ब्राउज़र एक्सटेंशन और वेब ऐप हैं जो इसे संभाल सकते हैं, जिनमें से डाउनगेट उनमें से एक है। बस GitHub URL को फ़ोल्डर (जैसे https://github.com/babel/babel-eslint/tree/master/lib) में पेस्ट करें और "डाउनलोड" बटन दबाएं।

3. तोड़फोड़

  • GitHub git- संग्रह (git फीचर जो हमें विशिष्ट फ़ोल्डर डाउनलोड करने की अनुमति देगा) का समर्थन नहीं करता है। GitHub हालांकि, विभिन्न तोड़फोड़ सुविधाओं का समर्थन करता है, जिनमें से एक का उपयोग हम इस उद्देश्य के लिए कर सकते हैं। तोड़फोड़ एक संस्करण नियंत्रण प्रणाली (गिट के लिए एक विकल्प) है। आपको सबवर्सन इंस्टॉल करना होगा। जिस फ़ोल्डर को आप डाउनलोड करना चाहते हैं, उसके लिए GitHub URL को पकड़ो। हालाँकि आपको इस URL को संशोधित करना होगा। आप "ट्रंक" शब्द के बाद रिपॉजिटरी का लिंक चाहते हैं, और नेस्टेड फ़ोल्डर के लिए पथ के साथ समाप्त होता है। दूसरे शब्दों में, समान फ़ोल्डर लिंक उदाहरण का उपयोग करके जो मैंने ऊपर उल्लेख किया है, हम "ट्रंक" के साथ "ट्री / मास्टर" को बदल देंगे। अंत में, एक टर्मिनल खोलें, उस निर्देशिका में नेविगेट करें जिसे आप डाउनलोड करने के लिए सामग्री चाहते हैं, निम्न कमांड में टाइप करें (आपके द्वारा बनाए गए URL के साथ URL की जगह):svn export https://github.com/babel/babel-eslint/trunk/lib, और एंटर दबाएं।

4. गिटहब एपीआई

  • यदि आप इस कार्य को प्रोग्रामेटिक रूप से पूरा करना चाहते हैं, तो यह समाधान है। और यह वास्तव में है क्या डाउटगिट हुड के तहत उपयोग कर रहा है। GitHub के REST API का उपयोग करते हुए , एक स्क्रिप्ट लिखें जो सामग्री समापन बिंदु के लिए GET अनुरोध करती है। समापन बिंदु का निर्माण निम्नानुसार किया जा सकता है https://api.github.com/repos/:owner/:repo/contents/:path:। प्लेसहोल्डर्स को बदलने के बाद, एक उदाहरण समापन बिंदु है:https://api.github.com/repos/babel/babel-eslint/contents/lib। यह आपको उस फ़ोल्डर में मौजूद सभी सामग्री के लिए JSON डेटा प्रदान करता है। डेटा में आपकी ज़रूरत की हर चीज़ है, जिसमें सामग्री एक फ़ोल्डर या फ़ाइल, एक डाउनलोड URL है यदि यह एक फ़ाइल है, और एक एपीआई समापन बिंदु अगर यह एक फ़ोल्डर है (ताकि आप उस फ़ोल्डर के लिए डेटा प्राप्त कर सकें)। इस डेटा का उपयोग करते हुए, स्क्रिप्ट पुन: लक्ष्य फ़ोल्डर में सभी सामग्री के माध्यम से जा सकती है, नेस्टेड फ़ोल्डर के लिए फ़ोल्डर बना सकती है, और प्रत्येक फ़ोल्डर के लिए सभी फ़ाइलों को डाउनलोड कर सकती है। की जाँच करें DownGit के कोड प्रेरणा के लिए।

9

एक और विशिष्ट उदाहरण:

जैसे मैं url से 'iOS Pro Geo' फ़ोल्डर डाउनलोड करना चाहता हूँ

https://github.com/alokc83/APRESS-Books-Source-Code-/ ट्री / मास्टर /% 20Pro% 20iOS% 20Geo

और मैं ऐसा कर सकता हूं

svn checkout https://github.com/alokc83/APRESS-Books-Source-Code-/trunk/%20Pro%20iOS%20Geo

मार्ग में नोट ट्रंक

संपादित: (टॉमी सी की टिप्पणी के अनुसार)

हां, चेकआउट के बजाय निर्यात का उपयोग करने से अतिरिक्त गिट रिपॉजिटरी फ़ाइलों के बिना एक साफ प्रति मिल जाएगी।

svn export https://github.com/alokc83/APRESS-Books-Source-Code-/trunk/%20Pro%20iOS%20Geo

संपादित: यदि पेड़ / मास्टर उर में नहीं है, तो उसे फोर्क दें और यह फोर्कड यूआरएल में होगा।


2
यदि आप चेकआउट के बजाय केवल फ़ोल्डर की एक प्रति डाउनलोड करना चाहते हैं तो निर्यात को चेकआउट बदलने की आवश्यकता है।
टॉमी सी।

आपके उत्तर के लिए धन्यवाद, क्या हम एक शाखा गोता लगा सकते हैं?
मान लीजिए

7

वहाँ एक Python3 पाइप पैकेज कहा जाता है githubdlजो यह कर सकता है *:

export GIT_TOKEN=1234567890123456789012345678901234567890123
pip install githubdl
githubdl -u http://github.com/foobar/test -d foo

परियोजना पृष्ठ यहाँ है

* अस्वीकरण: मैंने यह पैकेज लिखा है।


6

यह उन कुछ जगहों में से एक है जहाँ SVN Git से बेहतर है।

अंत में हमने तीन विकल्पों की ओर रुख किया:

  1. GitHub (कच्चे फ़ाइल दृश्य का उपयोग करके) डेटा को हथियाने के लिए wget का उपयोग करें।
  2. अपस्ट्रीम प्रोजेक्ट्स बिल्ड डेटा के रूप में आवश्यक डेटा सब्मिट प्रकाशित करते हैं।
  3. पूरा चेकआउट छोड़ दें और उपयोग करें। यह पहली बिल्ड पर बड़ी हिट है, लेकिन जब तक आपको बहुत अधिक ट्रैफ़िक नहीं मिलता है, यह निम्न बिल्ड में बहुत अधिक परेशानी नहीं है।

4
खैर, यह कम Git बनाम तोड़फोड़ और अधिक है कि GitHub फ्लैट-आउट गिट-संग्रह की अनुमति नहीं देता है। (मुझे यह जानकर अच्छा लगेगा कि क्यों।)
रोब हॉवर्ड

6

यदि आप यूनिक्स कमांड के साथ सहज हैं, तो आपको इसके लिए विशेष निर्भरता या वेब ऐप की आवश्यकता नहीं है। आप टैरो को टारबॉल के रूप में डाउनलोड कर सकते हैं और केवल उसी चीज को अनटार कर सकते हैं जो आपको चाहिए।

उदाहरण (फॉन्टव्यू में एक उपनिर्देशिका से woff2 फाइलें):

curl -L https://api.github.com/repos/FortAwesome/Font-Awesome/tarball | tar xz --wildcards "*/web-fonts-with-css/webfonts/*.woff2" --strip-components=3
  • लिंक प्रारूप के बारे में अधिक जानकारी: https://developer.github.com/v3/repos/contents/#get-archive-link (एक ज़िप फ़ाइल या विशिष्ट शाखाओं / refs कैसे प्राप्त करें सहित)
  • */किसी भी निर्देशिका से मिलान करने के लिए पथ का प्रारंभिक भाग ( ) रखें । Github नाम में कमिट रेफरी के साथ एक रैपर निर्देशिका बनाता है, इसलिए इसे नहीं जाना जा सकता है।
  • आप शायद पथ (पिछले तर्क) में --strip-componentsस्लैश ( /) की मात्रा के समान होना चाहते हैं ।

इससे पूरा टारबॉल डाउनलोड हो जाएगा। अन्य उत्तर में बताए गए SVN मेथड का उपयोग करें यदि इससे बचना है या यदि आप GitHub सर्वर के लिए अच्छा बनना चाहते हैं।


5

आप डायरेक्टरी ट्री का एक सरल डाउनलोड कर सकते हैं:

git archive --remote git@github.com:foobar/Test.git HEAD:foo | tar xf -

लेकिन अगर आप इसका मतलब निकालते हैं, और कमिट कर सकते हैं और उन्हें पीछे धकेल सकते हैं, तो आप ऐसा नहीं कर सकते।


1
अमान्य आदेश: 'git-upload-आर्काइव' foobar / Test.git '' आप git को क्लोन करने के लिए ssh का उपयोग करते हुए दिखाई देते हैं: // URL। सुनिश्चित करें कि आपका core.gitProxy कॉन्फ़िग विकल्प और GIT_PROXY_COMMAND परिवेश चर सेट नहीं है। घातक: रिमोट एंड अनपेक्षित रूप से टार अप: यह एक टार
आर्क

@g_inherit मैं इस मुद्दे को पुन: पेश कर सकता हूं। यद्यपि यह सही दिशा हो सकती है, यह उत्तर अमान्य है।
उली कोहलर

इतने सारे डाउन वोट के बावजूद यह एकमात्र सलाह है जिसने मेरे लिए काम किया।
bhaskarc

5

बस ऊपर दिए गए उत्तरों को बढ़ाना, एक वास्तविक GitHub रिपॉजिटरी से एक स्थानीय निर्देशिका के लिए एक वास्तविक उदाहरण होगा:

svn ls https://github.com/rdcarp/playing-cards/trunk/PumpkinSoup.PlayingCards.Interfaces

svn export https://github.com/rdcarp/playing-cards/trunk/PumpkinSoup.PlayingCards.Interfaces  /temp/SvnExport/Washburn

कभी-कभी एक ठोस उदाहरण प्रस्तावित प्रतिस्थापन को स्पष्ट करने में मदद करता है।


5

मेरी स्थिति में किसी भी उत्तर ने मदद नहीं की। यदि आप विंडोज के लिए विकसित कर रहे हैं, तो आप संभवतः svn नहीं है। कई स्थितियों में कोई भी उपयोगकर्ताओं पर भरोसा नहीं कर सकता है कि या तो Git स्थापित है, या अन्य कारणों से संपूर्ण रिपॉजिटरी डाउनलोड नहीं करना चाहते हैं। कुछ लोगों ने इस सवाल का जवाब दिया, जैसे कि विलेम वैन केटविच और एंकेट, ने इस कार्य को पूरा करने के लिए उपकरण बनाए। हालाँकि, यदि उपकरण उस भाषा के लिए नहीं लिखा गया है जिसका आप उपयोग कर रहे हैं, या आप तृतीय पक्ष लाइब्रेरी स्थापित नहीं करना चाहते हैं, तो ये काम नहीं करते हैं।

हालांकि, एक बहुत आसान तरीका है। GitHub में एक API है जो आपको GET अनुरोधों का उपयोग करके एक एकल फ़ाइल या संपूर्ण निर्देशिका की सामग्री डाउनलोड करने की अनुमति देता है । आप एक निर्देशिका का उपयोग कर सकते हैं जो https://api.github.com/repos/:owner/:repo_name/contents/:pathएक JSON ऑब्जेक्ट को रिटर्न करती है जो निर्देशिका में सभी फ़ाइलों को शामिल करती है। गणना में शामिल फ़ाइल की कच्ची सामग्री, download_urlपैरामीटर का एक लिंक है । उस URL का उपयोग करके फ़ाइल को डाउनलोड किया जा सकता है।

यह एक दो कदम की प्रक्रिया है जिसमें GET अनुरोध करने की क्षमता की आवश्यकता होती है, लेकिन इसे किसी भी भाषा में, किसी भी मंच पर लागू किया जा सकता है। इसका उपयोग फाइल या निर्देशिका प्राप्त करने के लिए किया जा सकता है।


4

हमारी टीम ने ऐसा करने के लिए बैश स्क्रिप्ट लिखी क्योंकि हम अपने नंगे हड्डियों के सर्वर पर एसवीएन स्थापित नहीं करना चाहते थे।

https://github.com/ojbc/docker/blob/master/java8-karaf3/files/git-download.sh

यह github API का उपयोग करता है और इसे कमांड लाइन से इस तरह चलाया जा सकता है:

git-download.sh https://api.github.com/repos/ojbc/main/contents/shared/ojb-certs

4

मैं linux का उपयोग करता हूं, इसे ~ / .bashrc में डालें, यहां तक ​​कि कहा जाता है: D $ HOME / .bashrc

git-dowloadfolder(){
a="$1"
svn checkout ${a/tree\/master/trunk}

}

फिर खोल को ताज़ा करें

source ~/.bashrc 

फिर इसे git-downloadfolder blablabla: D के साथ उपयोग करें


3

मैं CentOS 7 सर्वरों के साथ काम करता हूं, जिन पर मेरा रूट एक्सेस नहीं है, न ही git, svn, आदि (और न ही चाहते हैं!) इसलिए किसी भी गिटब फ़ोल्डर को डाउनलोड करने के लिए एक पायथन स्क्रिप्ट बनाई गई है: https://github.com/andrrrl/github -folder-डाउनलोडर

उपयोग सरल है, बस एक गीथुब परियोजना से संबंधित भाग को कॉपी करें, मान लें कि परियोजना https://github.com/MaxCDN/php-maxcdn/ है , और आप एक फ़ोल्डर चाहते हैं जहां कुछ स्रोत फाइलें ही हैं, तो आपको इसकी आवश्यकता है कुछ ऐसा करो:

$ python gdownload.py "/MaxCDN/php-maxcdn/tree/master/src" /my/target/dir/
(यदि मौजूद नहीं है तो लक्ष्य फ़ोल्डर बनाएगा)

इसके लिए lxml लाइब्रेरी की आवश्यकता होती है , easy_install lxml
अगर आपके पास रूट एक्सेस (मेरे जैसे) नहीं है, तो आप इन सामग्रियों के साथ .pydistutils.pyअपने $HOMEडायर में एक फ़ाइल बना सकते हैं: [install] user=1 और easy_install lxmlबस काम करेगा (रेफ: https://stackoverflow.com/a/ 33464597/591257 )।


3

बस जाने के लिए 5 कदम

1) यहाँ से SVN डाउनलोड करें
2) सीएमडी खोलें और नीचे की तरह एसवीएन बिन निर्देशिका पर जाएं:

cd %ProgramFiles%\SlikSvn\bin

3) मान लें कि मैं इस निर्देशिका को डाउनलोड करने के लिए wan चाहता हूं 4) अब बदलें 5 के साथ ) अब उसी निर्देशिका में फ़ोल्डर डाउनलोड करने के लिए इस अंतिम कमांड को फायर करें।
https://github.com/ZeBobo5/Vlc.DotNet/tree/develop/src/Samples

tree/develop
or
tree/master
trunk

svn export https://github.com/ZeBobo5/Vlc.DotNet/trunk/src/Samples


यह प्राइवेट रेपो
Sundeep Pidugu

हाँ, यह निजी रेस्पोंस के लिए काम नहीं करेगा, प्राइवेट रेस्पोंस को डाउनलोड करने के लिए जीआईटी की सिफारिश की जाती है।
मुहम्मद अली

2

गिटहब से एक निर्देशिका निर्यात करने के लिए, "/ ट्री / मास्टर /" को निर्देशिका के यूआरएल में "/ ट्रंक /" से बदलें।

उदाहरण के लिए, निम्न URL से निर्देशिका निर्यात करने के लिए:

https://github.com/liferay/liferay-plugins/tree/master/portlets/sample-hibernate-portlet

निम्न आदेश चलाएँ:

svn export https://github.com/liferay/liferay-plugins/trunk/portlets/sample-hibernate-portlet

2

इसका एक सीधा उत्तर यह है कि निम्नलिखित लिंक से पहले कछुआ svn को देखें।

https://tortoisesvn.net/downloads.html

जबकि इंस्टालेशन CLI विकल्प को चालू करता है, ताकि इसका उपयोग कमांड लाइन इंटरफेस से किया जा सके।

गिट हब उप निर्देशिका लिंक की प्रतिलिपि बनाएँ।

उदाहरण

https://github.com/tensorflow/models/tree/master/research/deeplab

पेड़ / मास्टर को ट्रंक से बदलें

https://github.com/tensorflow/models/trunk/research/deeplab

और करो

svn चेकआउट https://github.com/tensorflow/models/trunk/research/deeplab

फ़ाइलें वर्तमान निर्देशिका में deeplab फ़ोल्डर में डाउनलोड की जाएंगी।


2

आप निम्न तरीके से git svn का उपयोग कर सकते हैं।

git svn clone https://github.com/lodash/lodash/trunk/test

इस तरह आपको svn की स्थापना के दर्द से नहीं गुजरना पड़ता है, विशेष रूप से विंडोज उपयोगकर्ताओं के लिए।


धन्यवाद। मैं वाउच कर सकता हूं कि यह विंडोज के लिए काम करता है। हालांकि gcloud पर काम नहीं करता है। यह कहता है: git: 'svn' एक कमांड नहीं है
जोसेफ आशीर्वाद सिंह

sudo apt install git-svnWSL के माध्यम से चलने पर आवश्यक है।
जम्मी डोजर

1

यदि आपको इसे प्रोग्राम करने की आवश्यकता है और आप एसवीएन पर भरोसा नहीं करना चाहते हैं, तो आप सभी सामग्रियों को पुन: डाउनलोड करने के लिए गिटहब एपीआई का उपयोग कर सकते हैं।

प्रेरणा के लिए, यहाँ मेरा माणिक जिस्ट है: https://gist.github.com/cvengros/b2a7e82f66519d423b6f


1

इस फ़ंक्शन का उपयोग करें, पहला तर्क फ़ोल्डर में url है, दूसरा वह स्थान है जहां फ़ोल्डर डाउनलोड किया जाएगा:

function github-dir() {
    svn export "$(sed 's/tree\/master/trunk/' <<< "$1")" "$2"  
}

1

git clone --filter २.१ ९ से

यह विकल्प वास्तव में सर्वर से अनावश्यक वस्तुओं को लाना छोड़ देगा:

git clone --depth 1 --no-checkout --filter=blob:none \
  "file://$(pwd)/server_repo" local_repo
cd local_repo
git checkout master -- mydir/

सर्वर को इसके साथ कॉन्फ़िगर किया जाना चाहिए:

git config --local uploadpack.allowfilter 1
git config --local uploadpack.allowanysha1inwant 1

इस सुविधा को v2.19.0 में समर्थन करने के लिए Git रिमोट प्रोटोकॉल के लिए एक एक्सटेंशन बनाया गया था, लेकिन उस समय कोई सर्वर समर्थन नहीं है। लेकिन यह पहले से ही स्थानीय रूप से परीक्षण किया जा सकता है।

मैंने इसे और अधिक विस्तार से कवर किया है: मैं केवल Git रिपॉजिटरी के एक उपनिर्देशिका को कैसे क्लोन करूं?


1
दिलचस्प और उत्थित। मुझे लगता है कि मैंने इस 2.19 सुविधा का उल्लेख कहीं और किया होगा।
VonC

@VonC मुझे लगता है कि मैंने आपको एक बार इसे हराया था: stackoverflow.com/questions/2466735/… और मैंने केवल XD को रिलीज़ होने के बाद इसे देखा था! मैं २.२२ रिलीज़ के बाद आज थोड़ा सा Googling था, सभी उत्तर पहले से ही निश्चित रूप से अपडेट हो चुके हैं ;-) यह मुझे कभी भी चकित नहीं करना चाहता कि कैसे एक और सेमी डुप्लिकेट हमेशा बचा रहता है, और मैं इसे एक साल बाद ढूंढना चाहता हूं थोड़ा अलग क्वेरी। मैं आपको हालांकि, बहुत मुश्किल से गिट पर हरा देने का इरादा नहीं करता, लेकिन नेक्रोमन्ट काउंट पर नज़र रखता हूं! haha
Ciro Santilli 冠状

खैर, अच्छा काम जारी रखें: इस छोटे पक्ष की प्रतियोगिता से सभी समुदाय लाभान्वित होंगे (और मैंने उस समय आपके अन्य उत्तर को
उकेरा

@VonC का मज़ाक उड़ाते हुए, मैं आपके सामान को स्पष्ट रूप से प्रस्तुत करता हूं। मुझे बस उन बिंदुओं को पैसे में भुनाने का एक तरीका खोजने की जरूरत है, जो अब है XD
सिरो संतिली 冠状 a a a

1

जो भी कारण के लिए, svnसमाधान मेरे लिए काम नहीं करता है, और चूंकि मुझे svnकिसी और चीज की कोई आवश्यकता नहीं है, इसलिए इसे बनाने की कोशिश में समय बिताने का कोई मतलब नहीं था, इसलिए मैंने उन उपकरणों का उपयोग करके एक सरल समाधान की तलाश की जो मेरे पास पहले से ही थे। यह स्क्रिप्ट केवल curlऔर के awkरूप में वर्णित एक GitHub निर्देशिका में सभी फ़ाइलों को डाउनलोड करने के लिए उपयोग करता है "/:user:repo/contents/:path"

GitHub REST API "GET /repos/:user:repo/contents/:path"कमांड के लिए कॉल का लौटा हुआ बॉडी एक ऑब्जेक्ट देता है जिसमें "download_url"डायरेक्टरी में प्रत्येक फ़ाइल के लिए एक लिंक शामिल होता है ।

यह कमांड-लाइन स्क्रिप्ट कॉल करती है जो REST API उपयोग करती है curlऔर परिणाम AWK के माध्यम से भेजती है, जो सभी "फिल्टर_ लाइन" को फ़िल्टर करती है, लिंक से उद्धरण चिह्नों और अल्पविरामों को मिटाती है, और फिर कर्ल करने के लिए किसी अन्य कॉल का उपयोग करके लिंक को डाउनलोड करती है।

curl -s https://api.github.com/repos/:user/:repo/contents/:path | awk \
     '/download_url/ { gsub("\"|,", "", $2); system("curl -O "$2"); }'

1

git sparse-checkout

Git 2.25.0 में एक नया प्रायोगिक git sparse-checkoutकमांड शामिल है जो मौजूदा सुविधा का उपयोग करना आसान बनाता है, साथ ही बड़े रिपॉजिटरी के लिए कुछ महत्वपूर्ण प्रदर्शन लाभ देता है। ( गिटहब ब्लॉग )

वर्तमान संस्करण के साथ उदाहरण :

git clone --filter=blob:none --sparse https://github.com/git/git.git
cd git
git sparse-checkout init --cone
git sparse-checkout add t

सबसे एहम

  • --sparsegitवर्किंग कॉपी में रिपॉजिटरी की केवल शीर्ष-स्तरीय निर्देशिका फ़ाइलों की जाँच करता है
  • git sparse-checkout add tवर्धित रूप से जोड़ता है / tसबफ़ोल्डर की जाँच करता हैgit

अन्य तत्व

  • git sparse-checkout init आंशिक चेकआउट सक्षम करने के लिए कुछ तैयारी करता है
  • --filter=blob:noneकेवल आवश्यक गिट वस्तुओं को डाउनलोड करके डेटा प्राप्त करने का अनुकूलन करता है ( आगे के infos के लिए आंशिक क्लोन सुविधा पर एक नज़र डालें )
  • --cone अधिक प्रतिबंधित फ़ाइल समावेशन पैटर्न लागू करके प्रदर्शन को गति देता है

गिटहब की स्थिति

GitHub अभी भी आंतरिक रूप से इस सुविधा का मूल्यांकन कर रहा है, जबकि यह कुछ चुनिंदा रिपॉजिटरी [...] पर सक्षम है। जैसे ही सुविधा स्थिर और परिपक्व होती है, हम आपको इसकी प्रगति के साथ अपडेट रखेंगे। ( डॉक्स )


Upvoted। मैंने उस आदेश को stackoverflow.com/a/59515426/6309 में प्रस्तुत किया है , जिसमें क्लोन पैटर्न सेट है।
वॉन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.