दिलचस्प पोस्ट
कोड जी ++ में सही है लेकिन एक्सोड में नहीं – फ़ाइल नहीं मिल सकता है PHP से जावास्क्रिप्ट के लिए JSON लौट रहा है? सहायक उपकरणों के लिए 10.9 पर प्रोग्रामेटिक रूप से प्रवेश सक्षम करें मैं फ़ाइल पथ प्राप्त करने के लिए ड्रैग-एंड-ड्रॉप इन स्विंग का उपयोग कैसे कर सकता हूं? `कन्स्ट्रक्टर 'संपत्ति वास्तव में किस लिए उपयोग की जाती है? JQuery अजाक्स अनुरोध: उपयोगकर्ता-एजेंट बदलें मैं मानवीय पठनीय तरीके से जावा। वर्ग फ़ाइलों को कैसे खोल सकता हूं? Git submodules और ssh प्रवेश क्रॉस-ब्राउज़र। के रूप में सहेजें आप .NET (C # विशेष रूप से) में ऑब्जेक्ट की एक गहरी प्रतिलिपि कैसे करते हैं? मैच () जब मैं एक मैच की उम्मीद करता हूँ तब दो मैचों में सरणी देता है PHP: सत्र SUBDOMAIN पर खो गया एसक्यूएलआईटीई पूर्णांक डेटा प्रकारों में अंतर, पूर्णांक, बिलींट इत्यादि के बीच अंतर क्या है? एक एनएसडीटा को एनएसएसटीइंग हेक्स स्ट्रिंग में कनवर्ट कैसे करें? java.lang.IllegalArgumentException: तुलना विधि अपने सामान्य अनुबंध का उल्लंघन करती है

क्या पहले पूरे रिपॉजिटरी को चेक किए बिना विरल चेक करना संभव है?

मैं एक बहुत बड़ी संख्या में फ़ाइलों के साथ एक रिपॉजिटरी के साथ काम कर रहा हूं जो चेकआउट में घंटे लगते हैं मैं इस बात की संभावना पर गौर कर रहा हूं कि क्या गिट इस तरह के रिपॉजिटरी के साथ अच्छी तरह से काम करेगा, जो कि यह विरल चेकआउट का समर्थन करता है, लेकिन हर उदाहरण जिसे मैं ढूँढ सकता हूं निम्नलिखित:

git clone <path> git config core.sparsecheckout true echo <dir> > .git/info/sparse-checkout git read-tree -m -u HEAD 

आदेशों के इस अनुक्रम के साथ समस्या यह है कि मूल क्लोन एक चेकआउट भी करता है। यदि आप मूल क्लोन कमांड में -n जोड़ते हैं, तो read-tree कमांड में निम्न त्रुटि होती है:

त्रुटि: स्पार्स चेकआउट में कार्यरत निर्देशिका पर कोई प्रविष्टि नहीं है

पहले सभी फाइलों को चेक किए बिना स्पार्स चेकआउट कैसे कर सकता है?

Solutions Collecting From Web of "क्या पहले पूरे रिपॉजिटरी को चेक किए बिना विरल चेक करना संभव है?"

इसे इस्तेमाल करे:

 mkdir myrepo cd myrepo git init git config core.sparseCheckout true git remote add -f origin git://... echo "path/within_repo/to/desired_subdir/*" > .git/info/sparse-checkout git checkout [branchname] # ex: master 

अब आपको पता चल जाएगा कि आपके पास केवल पथ / भीतर_प्रो / से / वांछित_एसयूबीडीआईआर (और उस पथ में) फाइलों के साथ "कटा हुआ" चेकआउट है।

ध्यान दें कि खिड़कियां कमांड लाइन पर आपको पथ का उद्धरण नहीं करना चाहिए, यानी आपको 6 एक कमांड को इस एक के साथ बदलना होगा:

 echo path/within_repo/to/desired_subdir/* > .git/info/sparse-checkout 

अगर आप नहीं करते हैं तो आपको स्पार्स-चेकआउट फ़ाइल में उद्धरण मिलेगा, और यह काम नहीं करेगा

Git क्लोन में एक विकल्प ( --no-checkout या -n ) होता है जो आप चाहते हैं।

आपके आदेशों की सूची में, बस बदलाव करें:

 git clone <path> 

इसके लिए:

 git clone --no-checkout <path> 

आप प्रश्न में बताए अनुसार स्पार्स चेकआउट का उपयोग कर सकते हैं।

मुझे पाकीक (धन्यवाद!) के द्वारा पोस्ट किए गए एक-लाइनर से जवाब का जवाब मिला, इसलिए मैं लिनक्स (जीआईटी 1.7.1) पर काम करने वाले एक ही उत्तर में एक पूर्ण जवाब देना चाहता था:

 1--> mkdir myrepo 2--> cd myrepo 3--> git init 4--> git config core.sparseCheckout true 5--> echo 'path/to/subdir/' > .git/info/sparse-checkout 6--> git remote add -f origin ssh://... 7--> git pull origin master 

मैंने आज्ञाओं का क्रम थोड़ी बदल दिया है लेकिन इसमें कोई प्रभाव नहीं लगता है। कुंजी चरण 5 में पथ के अंत में अनुगामी स्लैश "/" की उपस्थिति है।

अफसोस की बात है कि उपरोक्त में से कोई भी मेरे लिए काम नहीं कर रहा है, इसलिए मैं बहुत लंबे समय से sparse-checkout फ़ाइल के विभिन्न संयोजन की कोशिश कर रहा था।

मेरे मामले में मैं इंटेलीज आईडीईए कॉन्फ़िग्स के साथ फ़ोल्डर्स को छोड़ना चाहता था।

मैंने जो किया था यह रहा:


git clone https://github.com/myaccount/myrepo.git --no-checkout चलाएं git clone https://github.com/myaccount/myrepo.git --no-checkout

git config core.sparsecheckout true चलाएं

निम्नलिखित सामग्री के साथ .git\info\sparse-checkout गया

 !.idea/* !.idea_modules/* /* 

सभी फाइलों को प्राप्त करने के लिए 'जीआईटी चेकआउट' चलाएं


यह काम करने के लिए महत्वपूर्ण बात यह है कि फ़ोल्डर के नाम के बाद /* जोड़ना

मेरे पास गिट 1.9 है

मेरे पास एक समान उपयोग का मामला था, सिवाय मैं केवल एक टैग के लिए प्रतिबद्धता जांचना चाहता था और निर्देशिकाओं को छेड़ना था --depth 1 का उपयोग करना यह वास्तव में विरल बनाता है और वास्तव में चीजों की गति बढ़ा सकता है

 mkdir myrepo cd myrepo git init git config core.sparseCheckout true git remote add origin <url> # Note: no -f option echo "path/within_repo/to/subdir/" > .git/info/sparse-checkout git fetch --depth 1 origin tag <tagname> git checkout <tagname> 

मैं git के लिए नया हूँ, लेकिन ऐसा लगता है कि अगर मैं प्रत्येक निर्देशिका के लिए जीआईटी चेकआउट करता हूं तो यह काम करता है। साथ ही, स्पैसर-चेकआउट फ़ाइल को प्रत्येक निर्देशिका के बाद अनुगामी स्लैश की आवश्यकता होती है, जैसा कि संकेत दिया गया है। कोई और अधिक अनुभव कृपया पुष्टि करें कि यह काम करेगा

दिलचस्प बात यह है कि यदि आप स्पार्से-चेकआउट फ़ाइल में नहीं देखते हैं तो यह कोई फर्क नहीं पड़ता है। वे git स्थिति में दिखाई नहीं देते हैं और git read-tree -m -u HEAD हटाए जाने का कारण नहीं है। जीआईटी रीसेट – हार्ड निर्देशिका को हटाया नहीं जा सकता है किसी भी व्यक्ति ने गिट को उन निर्देशिकाओं के बारे में टिप्पणी करने के लिए और अधिक अनुभवी देखभाल की है जो बाहर की जाँच की जाती हैं, लेकिन जो विरल चेकआउट फ़ाइल में नहीं हैं?

git 2.9 (जून 2016) git worktree add लिए --no-checkout विकल्प को सामान्यीकृत करेगा (कमांड जो एक रेपो के लिए कई कार्यशील पेड़ों के साथ काम करने की अनुमति देता है)

रे झांग ( OneRaynyDay ) द्वारा एफएफए 2 एएएसीएक (2 9 मार्च 2016) को देखें।
सहायता-द्वारा: एरिक सनशाइन ( gitster ) , और gitster सी gitster ( gitster ) ।
( जूनो सी gitster द्वारा मर्ज किए गए – gitster – प्रतिबद्ध 0d8683c , 13 अप्रैल 2016)

git worktree मैन पेज में अब शामिल हैं:

 --[no-]checkout: 

डिफ़ॉल्ट रूप से, चेक को <branch> add , हालांकि, अनुकूलन करने के लिए चेकआउट को दबाने के लिए --no-checkout का उपयोग किया जा सकता है, जैसे कि स्पार्स-चेकआउट को कॉन्फ़िगर करना

हां, स्पार्ट-चेकआउट जीआईटी से एक फ़ोल्डर डाउनलोड करने के लिए पूरे सामान डाउनलोड करें। उपरोक्त तरीकों में से कोई भी मेरे लिए काम नहीं करता है https://github.com/gearvrf/GearVRf-Demos से केवल एक नमूना को downlaod करने के लिए यहाँ है मैंने क्या किया ..

  1. विंडोज़ प्रयोक्ता के लिए डाउनलोड करें और स्लेकसवीएन_एक्स 84 को स्थापित करें, इसे "सी: \ प्रोग्राम फाईल्स (x86) \ स्लिक्श्वन \ बिन" पाथ एन्वायरमेंट वेरिएबल में जोड़ें। मैक उपयोगकर्ता वैकल्पिक एसवीएन ग्राहक का उपयोग करें

  2. कमांड लाइन का उपयोग करें: svn export https://github.com/foobar/Test.git/trunk/foo

यूआरएल प्रारूप की सूचना दें:

आधार यूआरएल https://github.com/ / ट्रंक अंत में संलग्न है

उदाहरण: svn export https://github.com/gearvrf/GearVRf-Demos.git/trunk/gvr-renderableview

मुझे उम्मीद है कि यह किसी की मदद करेगा रेफरी: https://stackoverflow.com/a/18324458/5710872