दिलचस्प पोस्ट
कोई कंपाइलर त्रुटि नहीं जब स्थिर आकार चार सरणी को शून्य टर्मिनेटर के लिए पर्याप्त स्थान के बिना आरंभीकृत किया जाता है अद्वितीय पंक्तियों, आरओ में दो कॉलमों पर विचार करने के बिना स्कला में साथी वस्तुओं के पीछे तर्क क्या है? कार्य के भीतर जावास्क्रिप्ट और ऑपरेटर जब एक डिवीज को रखा जाता है तो अन्य तत्वों को कैसे प्रभावित किया जाए मैं PHP में त्रुटि 404 कैसे बना सकता हूं? सी # आवेदन में वैश्विक कुंजीपटल कैप्चर कब "a" टैग मूल टैग के रंग गुण का उत्तराधिकारी नहीं होगा? ASP.NET MVC में डिफ़ॉल्ट सत्यापन त्रुटि संदेश कैसे परिवर्तित करें? आईओएस 7 पर अपनी सामग्री के लिए मैं एक यूआईटीक्स्टव्यू कैसे आकार करूँ? * NgFor का उपयोग करके जेसन ऑब्जेक्ट कैसे प्रदर्शित करें I रीफ़्रेश एक्सेल VBA फंक्शन परिणाम पायथन: दो पूर्ण पथों की तुलना से संबंधित मार्ग प्राप्त करें "इस फ़ाइल प्रकार को संभालने के लिए आपको उपयुक्त लोडर की आवश्यकता हो सकती है" वेबपैक और बैबेल के साथ jQuery: लाइव () बनाम प्रतिनिधि ()

क्या-व्यावहारिक-ब्रेड और गैर-बडी भंडार के बीच अंतर है?

मैं गिट में नंगे और गैर-बेअर / डिफॉल्ट रिपोजोटर के बारे में पढ़ रहा हूं। मैं उनके बीच के मतभेदों के बारे में (सैद्धांतिक रूप से) बहुत अच्छी तरह से समझने में सक्षम नहीं हूं, और मुझे नंगे रिपॉजिटरी में "धक्का" क्यों करना चाहिए? यहाँ सौदा है:

वर्तमान में, मैं केवल 3 अलग-अलग कंप्यूटरों पर एक प्रोजेक्ट पर काम कर रहा हूं, लेकिन बाद में इसमें अधिक लोग शामिल होंगे, इसलिए मैं संस्करण नियंत्रण के लिए गिट का उपयोग कर रहा हूं। मैं सभी कंप्यूटरों पर नंगे रेपो को क्लोन करता हूं, और जब मैं इनमें से किसी एक पर अपने संशोधनों को पूरा करता हूं, तो मैं उन परिवर्तनों को बेवकूफ रेपो में डालता हूं और धक्का देता हूं। मैंने जो पढ़ा है, से नंगे भंडार में "काम कर रहे वृक्ष" नहीं है, इसलिए यदि मैं नंगे रेपो को क्लोन करता हूं, तो मेरे पास "काम कर रहे वृक्ष" नहीं होगा।

मुझे लग रहा है कि कार्यरत पेड़ परियोजना से प्रतिबद्ध सूचना, शाखाओं आदि को स्टोर करता है। यह नंगे रेपो में नहीं दिखाई देगा तो यह मेरे लिए अच्छा लगता है कि काम करने वाले पेड़ के साथ रेपो में प्रतिबद्धता को "धक्का" दें।

फिर, मुझे नंगे रिपॉजिटरी का उपयोग क्यों करना चाहिए और क्यों नहीं? व्यावहारिक अंतर क्या है? यह एक परियोजना पर काम करने वाले अधिक लोगों के लिए फायदेमंद नहीं होगा, मुझे लगता है।

इस तरह के काम के लिए आपके तरीके क्या हैं? सुझाव?

वेब के समाधान से एकत्रित समाधान "क्या-व्यावहारिक-ब्रेड और गैर-बडी भंडार के बीच अंतर है?"

नंगे और गैर-बेजोड़ भंडार के बीच एक और अंतर यह है कि एक छोटी भंडार में एक डिफ़ॉल्ट रिमोट मूल रिपॉजिटरी नहीं है:

 derek@derek-OptiPlex-960:~/Projects$ git clone --bare test bare Initialized empty Git repository in /home/derek/Projects/bare/ derek@derek-OptiPlex-960:~/Projects$ cd bare derek@derek-OptiPlex-960:~/Projects/bare$ git branch -a * master derek@derek-OptiPlex-960:~/Projects/bare$ cd .. derek@derek-OptiPlex-960:~/Projects$ git clone test non-bare Initialized empty Git repository in /home/derek/Projects/non-bare/.git/ cd nonderek@derek-OptiPlex-960:~/Projects$ cd non-bare derek@derek-OptiPlex-960:~/Projects/non-bare$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/master 

git clone --bare लिए मैन्युअल पृष्ठ से – git clone --bare :

इसके अलावा रिमोट पर शाखा प्रमुख सीधे स्थानीय शाखा प्रमुखों को प्रतिलिपि किए बिना, उन्हें रिफॉल्फ़ / रिमोट / मूल / के लिए मैप किए बिना कॉपी कर रहे हैं। जब यह विकल्प उपयोग किया जाता है, तो न ही रिमोट-ट्रैकिंग शाखाएं और न ही संबंधित कॉन्फ़िगरेशन वैरिएबल बनाए गए हैं।

जाहिर है, जब यह एक बेजोड़ भंडार बनाता है, तो गिट मानता है कि नंगे रिपॉजिटरी कई रिमोट उपयोगकर्ताओं के लिए मूल रिपॉजिटरी के रूप में काम करेंगे, इसलिए यह डिफ़ॉल्ट रिमोट मूल नहीं बनाती है। इसका अर्थ यह है कि बुनियादी git pull और git push संचालन तब तक काम नहीं करेंगे जब से गिट यह मान लेती है कि बिना कार्यस्थान के, आप नंगे रेजॉजिटरी में कोई भी बदलाव करने का इरादा नहीं करते हैं:

 derek@derek-OptiPlex-960:~/Projects/bare$ git push fatal: No destination configured to push to. derek@derek-OptiPlex-960:~/Projects/bare$ git pull fatal: /usr/lib/git-core/git-pull cannot be used without a working tree. derek@derek-OptiPlex-960:~/Projects/bare$ 

एक नंगे और गैर-बेतार जीआईटी भंडार के बीच का अंतर कृत्रिम और भ्रामक है क्योंकि एक कार्यस्थान रिपॉजिटरी का हिस्सा नहीं है और एक रिपॉजिटरी को कार्यस्थान की आवश्यकता नहीं होती है। कड़ाई से बोलते हुए, एक जीआईटी भंडार में उन वस्तुओं को शामिल किया गया है जो कि रिपॉजिटरी की स्थिति का वर्णन करते हैं। ये ऑब्जेक्ट किसी भी निर्देशिका में मौजूद हो सकते हैं, लेकिन आमतौर पर कार्यस्थान की शीर्ष-स्तरीय निर्देशिका में .git निर्देशिका में मौजूद हैं। वर्कस्पेस एक डायरेक्टरी ट्री है जो रिपॉजिटरी में एक खास कमिट का प्रतिनिधित्व करती है, लेकिन यह किसी भी निर्देशिका में मौजूद हो सकती है या बिल्कुल भी नहीं। पर्यावरण वैरिएबल $GIT_DIR एक कार्यस्थान को उस रिपॉजिटरी में जोड़ता है जहां से इसकी उत्पत्ति होती है।

जीआईटी कमांड git clone और git init दोनों के पास विकल्प --bare यह कि प्रारंभिक कार्यक्षेत्र के बिना रिपॉजिटरी बनाने के लिए यह दुर्भाग्यपूर्ण है कि गीटक ने कार्यक्षेत्र और रिपॉजिटरी के दो अलग-अलग, लेकिन संबंधित अवधारणाओं का सामना किया और फिर दो विचारों को अलग करने के लिए भ्रामक शब्द का इस्तेमाल किया।

एक बेजोड़ भंडार कुछ भी नहीं है, लेकिन गिट फ़ोल्डर ही एक नंगे रिपॉजिटरी की सामग्री है जो आपके स्थानीय वर्किंग रिपॉजिटरी में .git फ़ोल्डर की सामग्री के समान है।

  • एकाधिक योगदानकर्ताओं को अपने काम को पुश करने के लिए दूरस्थ सर्वर पर नंगे रिपॉजिटरी का उपयोग करें
  • गैर-बेअर – काम करने वाले पेड़ को आपकी प्रोजेक्ट के प्रत्येक योगदानकर्ता की स्थानीय मशीन पर समझ में आता है।

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

5 साल बहुत देर हो चुकी है, मुझे पता है, लेकिन कोई भी वास्तव में इस सवाल का जवाब नहीं दिया:

फिर, मुझे नंगे रिपॉजिटरी का उपयोग क्यों करना चाहिए और क्यों नहीं? व्यावहारिक अंतर क्या है? यह एक परियोजना पर काम करने वाले अधिक लोगों के लिए फायदेमंद नहीं होगा, मुझे लगता है।

इस तरह के काम के लिए आपके तरीके क्या हैं? सुझाव?

लोईलीगर / एमसीलॉफ़ बुक (978-1-44 9-31638-9, पी 1 9 6/7) से सीधे उद्धृत करने के लिए:

एक छोटी भंडार थोड़ी देर के लिए लग सकता है, लेकिन इसकी भूमिका महत्वपूर्ण है: सहयोगी विकास के लिए एक आधिकारिक फोकल बिंदु के रूप में सेवा करना। अन्य डेवलपर्स clone और नंगे fetch से fetch और अपडेट्स को push करते हैं … अगर आप एक रिपॉजिटरी सेट अप करते हैं जिसमें डेवलपर्स बदलाव fetch हैं, तो यह नंगे होना चाहिए। असल में, यह अधिक सामान्य सबसे अच्छा अभ्यास का एक विशेष मामला है कि प्रकाशित रिपॉजिटरी नंगे होनी चाहिए।

एक बेजोड़ भंडार में लाभ होता है

  • कम डिस्क उपयोग
  • रिमोट पुश से संबंधित कम समस्याएं (चूंकि समकालीन से बाहर निकलने या विवादित परिवर्तन नहीं होने के कारण कोई काम पेड़ नहीं है)

नॉन नॉर रिपॉजिटरी आपको नए कामकाज बनाकर (अपने काम के पेड़ में) कब्जा करने की अनुमति देता है

अन्य रिपॉजिटरी से बदलावों को ले जाने के द्वारा नंगे रिपॉजिटरीज को केवल बदला जाता है

मैं निश्चित रूप से एक गिट "विशेषज्ञ" नहीं हूं मैंने थोड़ी देर के लिए टोर्टोइजगिट का इस्तेमाल किया है, और यह सोच कर कि यह क्या था जब उसने मुझसे पूछा कि क्या मैं एक "बेअर" रेपो करना चाहता था जब भी मैंने एक बनाया मैं इस ट्यूटोरियल को पढ़ रहा था: https://www.atlassian.com/git/tutorials/setting-up-a-repository/git-init और यह इस मुद्दे को संबोधित करता है, लेकिन मैं अभी भी अवधारणा को काफी समझ नहीं था। इसने बहुत मदद की है: http://bitflop.com/tutorials/git-bare-vs-non-bare-repositories.html । अब, पहले एक भी समझ में आता है!

इन स्रोतों के अनुसार, संक्षेप में एक "बेअर" रेपो का प्रयोग एक सर्वर पर किया जाता है, जहां आप वितरण बिंदु को सेट करना चाहते हैं यह आपकी स्थानीय मशीन पर उपयोग के लिए आशय नहीं है आप आमतौर पर अपने स्थानीय मशीन से एक रिमोट सर्वर पर बेअर रेपो में जमा करते हैं, और आप और / या अन्य उस रेपो से अपने स्थानीय मशीन तक खींचते हैं। तो आपका गिटहब, असेंम्ला आदि रिमोट स्टोरेज / डिस्ट्रीब्यूशन रिपो एक उदाहरण है जहां "बेअर" रिपो बनाया जाता है। यदि आप अपना समान "साझाकरण केंद्र" स्थापित कर रहे थे, तो आप खुद को स्वयं बनाते।