/ / अस्थिर कनेक्शन पर एक बड़ी परियोजना के लिए गिट क्लोन कैसे पूरा करें? - गिट, गिट-क्लोन

अस्थिर कनेक्शन पर एक बड़ी परियोजना के लिए गिट क्लोन कैसे पूरा करें? - git, git-clone

मैं लिब्रे ऑफिस को क्लोन करने की कोशिश कर रहा हूंकोडबेस, लेकिन फिलहाल मेरे पास लगभग 300kbps का इंटरनेट कनेक्शन है और यह कुछ भी लेकिन स्थिर है। मैं किसी भी क्षण वापस कनेक्शन प्राप्त कर सकता हूं, लेकिन फिर गिट क्लोन प्रक्रिया पहले से ही काम करना बंद कर देती है, और इसे फिर से चलाने का कोई तरीका नहीं है। वहाँ एक और अधिक विफलता-प्रतिरोधी गिट क्लोन डाउनलोड करने का कोई तरीका है?

एक विकल्प जो मैंने माना है कि किसी और की "। निर्देशिका को डाउनलोड करना है, लेकिन यह दूसरों पर निर्भर है और मेरे लिए सबसे अच्छा संभव समाधान नहीं लगता है।"

उत्तर:

उत्तर № 1 के लिए 58

मुझे लगता है कि यह अभी तक तैयार नहीं है एक पुराना GSoC पृष्ठ जो आपकी इच्छित सुविधा को लागू करने की योजना बना रहा है। मेरी सबसे अच्छी शर्त है, जैसे आपने सुझाव दिया कि इसे निर्देशिका के रूप में डाउनलोड करें। मुझे लगता है कि आप अन्य प्रोटोकॉल पर डाउनलोड फिर से शुरू करने में सक्षम हैं।

संयमित क्लोन

जब एक बड़े भंडार का क्लोनिंग (जैसे) केडीई के रूप में,कार्यालय खोलें, लिनक्स कर्नेल) वर्तमान में पुनरारंभ करने का कोई तरीका नहीं है एक बाधित क्लोन। यह ले सकता है पर एक उपयोगकर्ता के लिए काफी समय डाउनलोड करने के लिए एक छोटे से पाइप का अंत डेटा, और यदि क्लोन बाधित है बीच में उपयोगकर्ता को वर्तमान में जरूरत है शुरू से शुरू करने के लिए और पुनः प्रयास करें। कुछ उपयोगकर्ताओं के लिए यह हो सकता है एक बड़े क्लोन को बनाना असंभव है भंडार।

लक्ष्य: स्वचालित रूप से गिट-क्लोन की अनुमति दें पहले से विफल डाउनलोड को फिर से शुरू करें देशी गिट पर: // प्रोटोकॉल। भाषा: सी मेंटर: शॉन पियर्स द्वारा सुझाया गया: शॉन गनीम पर नाशपाती


अद्यतन करें

उथले क्लोनिंग के साथ (git clone --depth=1) यदि आप प्रदाता के साथ संवाद कर सकते हैं तो किसी अन्य उत्तर में सुझाव दें यदि कोई व्यक्ति आपके लिए नंगे भंडार बना सकता है तो यह उपयोगी हो सकता है। आप आसानी से कर सकते हैं बदलना एक पूर्ण भंडार के लिए नंगे भंडार। उस उत्तर में टिप्पणियों को भी पढ़ें क्योंकि उथले क्लोन हमेशा मदद नहीं कर सकते हैं।


उत्तर № 2 के लिए 96

दो समाधान (या बल्कि समाधान) जो मन में आए वो हैं:

  • उपयोग उथले क्लोन अर्थात। git clone --depth=1, फिर गहरा इस क्लोन का उपयोग कर git fetch --depth=N, बढ़ते हुए एन। आप उपयोग कर सकते हैं git fetch --unshallow (1.8.0.3 के बाद से) शेष सभी संशोधन डाउनलोड करने के लिए।

  • किसी से पूछो बंडल कुछ टैग रिलीज़ तक (देखें) गिट-बंडल (1) मैनपेज)।बंडल अपने आप में एक साधारण फ़ाइल है, जिसे आप किसी भी तरह से डाउनलोड कर सकते हैं, HTTP / FTP के माध्यम से फिर से शुरू समर्थन के माध्यम से, BitTorrent के माध्यम से, rsync के माध्यम से, आदि। आप बंडल से क्लोन बना सकते हैं, कॉन्फ़िगरेशन को ठीक कर सकते हैं, और निजी लेटरऑफिस रिपॉजिटरी से आगे के भ्रूण कर सकते हैं। ।


जवाब के लिए 10 № 3

यह विधि 3rd पार्टी सर्वर का उपयोग करती है।

पहले, करो git clone --bare, फिर rsync -v -P -e ssh user@host:repo.git . आप विंडोज के तहत msys का उपयोग कर सकते हैं।


जवाब के लिए 9 № 4

आप "किसी और को" .गित निर्देशिका "डाउनलोड कर सकते हैं, लेकिन इसके साथ ही किसी और को आधिकारिक रिपॉजिटरी होने के नाते। लिबर ऑफिस रिपॉजिटरी http के माध्यम से उपलब्ध हैं, उदाहरण के लिए उनके build.git पर है http://anongit.freedesktop.org/git/libreoffice/build.git/ (देख http://cgit.freedesktop.org/libreoffice/ पूरी सूची के लिए, http URL प्रत्येक रिपॉजिटरी के पृष्ठ के निचले भाग में है)।

आप इन http URL पर जो देखते हैं, वह एक से अधिक कुछ नहीं है .git निर्देशिका (वास्तव में एक "नंगे" रिपॉजिटरी, जिसमें केवल वही है जो आपको मिलेगा .git निर्देशिका)। यह उसी निर्देशिका के लिए सर्वर है git:// मसविदा बनाना (git daemon) पढ़ेगा। यदि आप एक वेब डाउनलोडर (उदाहरण के लिए) इन निर्देशिकाओं की एक प्रति बनाते हैं wget -m -np), आप अपनी कॉपी से क्लोन कर सकते हैं और यह वैसे ही काम करेगा जैसे आपने HTTP रिपॉजिटरी से सीधे क्लोन किया था।

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


उत्तर के लिए 7 № 5

"वाहक कबूतर की बैंडविड्थ और एसडी कार्ड के बंडल को कभी भी कम न समझें"इस उत्तर का आधुनिक रूप होगा। इसे टार अप, प्लेन ओल्ड cp -a यह, जो भी हो, और लानत की बात मेल करें। किसी को एक एसएएसई में एक अंगूठे ड्राइव को छोड़ने के लिए अपने समय के दो मिनट लेने के लिए तैयार खोजें। एक संपर्क खोजें, वहाँ, वे आपके लिए भी कर सकते हैं।


जवाब के लिए 4 № 6

यदि आपके पास तृतीय-पक्ष सर्वर तक पहुंच है, तो आप वहां क्लोन कर सकते हैं और फिर कॉपी कर सकते हैं।


जवाब के लिए 4 № 7

टूटने दो git clone नीचे में यह घटक भागों है, और उपयोग करें git reset फ़ाइलों को फिर से डाउनलोड करने से रोकने के लिए।

कब git clone चलाता है, पहली कुछ चीजें जो इसके बराबर होती हैं

git init
git remote add origin <repo_url>
git fetch origin <branch>

यदि आप उपरोक्त चरणों को मैन्युअल रूप से चलाते हैं, और यह मानते हुए कि उन्होंने सही ढंग से पूरा किया है, तो अब आप निम्न को आवश्यक रूप से कई बार चला सकते हैं:

git reset --hard origin/<branch>

ध्यान दें कि यह हर बार जब यह चलता है, तो सभी फाइलों को चेकआउट करेगा, लेकिन आपको फ़ाइलों को फिर से डाउनलोड नहीं करना पड़ेगा, जिससे आपका एक टन बच सकता है।


जवाब के लिए 3 № 8

क्लोनिंग को रोकने के लिए CNTRL Z का उपयोग करें।टर्मिनल के पास डॉन 'टी' ने सिस्टम / लैपटॉप को हाइबरनेशन में डाल दिया और फिर बाद में fg कमांड द्वारा जारी रखा। मैं आज एक ही समस्या का सामना कर रहा था, जबकि एक रेपो frm गितुब को क्लोन करने की कोशिश कर रहा था। यह मेरे लिए एक समय बचाने के रूप में आया।


जवाब के लिए 3 № 9
git clone --depth <Number> <repository> --branch <branch name> --single-branch

यह कमांड मेरी मदद करती है (धन्यवाद निकोला पाओलुची)

उदाहरण के लिए

git clone --depth 1 https://github.com/gokhanmoral/siyahkernel3 --branch ics  --single-branch

2 उत्तर के लिए № 10

यह समस्या मुझे भी है। मेरे मामले में एक काम है। यह आपके मामले में लागू हो भी सकता है और नहीं भी।

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


उत्तर के लिए 1 № 11

क्लोन / डेप्थ बेस्ड आंसर की बिल्डिंग - बैश की कुछ लाइनें आसानी से हो जाती हैं ...

git clone --depth=1 something@somegit.com:/var/git/whatever.git <directory> cd <directory> for m in `seq 1 100`;do git fetch --depth=$m;done


उत्तर के लिए 0 № 12

आप hg-git एक्सटेंशन के साथ मर्क्यूरियल का उपयोग करने का प्रयास कर सकते हैं।

अगर वह काम नहीं करता है तो आप उपयोग कर सकते हैं git fetch <commit-id> एक रिमोट गिट रिपॉजिटरी के केवल कुछ हिस्सों को लाने के लिए(आप एक खाली गिट भंडार में ला सकते हैं, इसे क्लोन के साथ बनाने की कोई आवश्यकता नहीं है)। जब आप इस दृष्टिकोण का उपयोग करते हैं, तो आप शाखा विन्यास को सही कर सकते हैं (= स्थानीय और दूरस्थ ट्रैकिंग शाखाएँ बनाएँ)।


उत्तर के लिए 0 № 13

एक git प्रॉक्सी का उपयोग करें, जैसे नक़ल किया हुआ या जीआईटी-प्रॉक्सी.


उत्तर के लिए 0 № 14

अगर हम मान लेते हैं कि सर्वर का बैंड अच्छा है, तो इसका एक और जवाब है:

  1. सर्वर-साइड का उपयोग करके अपना स्वयं का सर्वर बनाएं Git आवरण"रों
  2. इसे अपने सर्वर में क्लोन करें
  3. सर्वर-साइड का उपयोग करके इसे ज़िप करें जिप अभिलेखागार"रों
  4. सर्वर-साइड से इसे डाउनलोड करें समर्थन फिर से शुरू करें

लेकिन यह केवल बहुत ही बुनियादी वेब-विकास अनुभव के साथ काम करता है;) और आपको भी चाहिए git.exe आपके गंभीर में