गिटहब में परियोजना बनाम रिपोजिटरी


189

GitHub में, एक परियोजना के बीच वैचारिक अंतर क्या है (जो एक भंडार के अंदर बनाया जा सकता है) और एक भंडार?

मैंने एसओ में कई समान प्रश्न ( यहां , यहां और यहां ) देखे हैं , लेकिन उनमें से कोई भी नहीं बताता है कि गीथहब प्रोजेक्ट क्या है, गीथहब रिपॉजिटरी क्या है और उनमें से प्रत्येक का उपयोग कब करना है।

यदि कोई प्रत्येक शब्द की व्याख्या कर सकता है, तो मैं इसकी सराहना करूंगा, और हर एक का उपयोग करने / बनाने के लिए एक उदाहरण प्रदान करूंगा। उदाहरण के लिए, यदि मेरे पास कई प्रोटोटाइप एप्लिकेशन हैं, तो सभी एक-दूसरे से स्वतंत्र हैं, मैं उन सभी के लिए स्रोत कोड को संगठित तरीके से प्रबंधित करने के लिए क्या बनाता हूं?


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

1
आपने कहा कि आपने इसी तरह का प्रश्न देखा है, लेकिन क्या आपने वास्तव में अपना पहला लिंक पढ़ा है? "यह एक स्पष्ट बात है, एक बात नहीं है। आप प्रति परियोजना में कई रिपोजिटरी हो सकते हैं।" और उसी सूत्र पर एक और जवाब "Git में प्रोजेक्ट्स, रिपॉजिटरी जैसी कोई चीज़ नहीं है।" यदि आप वास्तव में वास्तव में मतलब है github परियोजनाओं मैं इसके बारे में मदद करने के लिए github डॉक्स की जाँच करने का सुझाव देता हूं। Github.com/articles/…
PeeHaa

6
@PeeHaa हाँ मैंने किया। बहुत पहले वाक्य में यह कहा गया है: "यह एक परिमाण है, एक बात नहीं है। आपके पास प्रति परियोजना में कई रिपॉजिटरी हो सकते हैं।" मेरे लिए, यह गीटोरियस के बारे में बात करता है, न कि गिटहब के बारे में। इसके अलावा, यह कहता है कि Gitorious में आपके पास प्रति प्रोजेक्ट कई रिपॉजिटरी हो सकती हैं, लेकिन GitHub में दूसरा तरीका है। इसलिए, मैं वास्तव में सराहना करूंगा यदि आप बता सकते हैं कि यह मेरे प्रश्न का उत्तर कैसे दे रहा है?
कार्लोसियरा

2
मुझे लगता है कि यह शब्दार्थ पर छूता है जहां नई सुविधा परियोजनाएं - दृश्य बोर्ड - शब्द परियोजना के अतिभारित उपयोग के साथ संघर्ष करते हैं। डाउन वोट की संभावना है कि यह एक प्रोग्रामिंग सवाल नहीं है।
ओसोवस्किट

2
इसमें वह सब कुछ होना चाहिए जो आपको github.com/blog/…
osowskit

जवाबों:


110

GitHub ने हाल ही में प्रोजेक्ट्स नामक एक नई सुविधा शुरू की है । यह एक दृश्य बोर्ड प्रदान करता है जो कई परियोजना प्रबंधन उपकरणों के लिए विशिष्ट है:

परियोजना

GitHub पर प्रलेखित एक रिपॉजिटरी :

एक भंडार GitHub का सबसे मूल तत्व है। वे एक परियोजना के फ़ोल्डर के रूप में कल्पना करना सबसे आसान हैं। एक रिपॉजिटरी में प्रोजेक्ट फ़ाइल (प्रलेखन सहित) के सभी शामिल हैं, और प्रत्येक फ़ाइल के संशोधन इतिहास को संग्रहीत करता है। रिपोजिटरी में कई सहयोगी हो सकते हैं और ये सार्वजनिक या निजी हो सकते हैं।

GitHub पर प्रलेखित एक परियोजना :

GitHub पर प्रोजेक्ट बोर्ड आपको अपने काम को व्यवस्थित करने और प्राथमिकता देने में मदद करते हैं। आप विशिष्ट सुविधा कार्य, व्यापक रोडमैप या चेकलिस्ट जारी करने के लिए प्रोजेक्ट बोर्ड बना सकते हैं। प्रोजेक्ट बोर्ड के साथ, आपके पास अपनी आवश्यकताओं के अनुरूप अनुकूलित वर्कफ़्लो बनाने की सुविधा है।

भ्रम का एक हिस्सा यह है कि नई सुविधा, परियोजनाएं, ऊपर दस्तावेज में शब्द परियोजना के अतिभारित उपयोग के साथ संघर्ष करती हैं ।


1
इसलिए मैं अपने व्यक्तिगत अनुसंधान परियोजनाओं ए, बी, सी, आदि के लिए कोड को स्टोर करने के लिए जीथब का उपयोग कर रहा हूं। अगर मैं इसे सही ढंग से समझ रहा हूं, तो प्रत्येक अनुसंधान परियोजना को स्वयं भंडार मिलेगा? तो A को एक रिपॉजिटरी मिलती है, B को एक रिपॉजिटरी मिलती है, C को एक रिपॉजिटरी मिलती है, आदि?
प्लिंथ

जब आप एक रिपॉजिटरी कांटा करते हैं, तो क्या आपके फोर्क के पास प्रोजेक्ट बोर्ड के स्नैपशॉट तक पहुंच है?
जियोमाइंड

7
इसे एक स्वीकृत उत्तर के रूप में कैसे चुना जाता है? बस जो वर्णन किया गया है उसकी कॉपी पेस्ट करें। यह ओपी द्वारा पढ़ा जा सकता है लेकिन लोग सरल उदाहरणों से जानना चाहते हैं।
बटमासी

152

तथ्य 1: प्रोजेक्ट और रिपॉजिटरी हमेशा GitHub पर समानार्थी थे।

तथ्य 2: अब ऐसा नहीं है।

रिपोजिटरीज़ और प्रोजेक्ट्स को लेकर बहुत भ्रम है। पूर्व में दोनों शब्दों का उपयोग उपयोगकर्ताओं द्वारा बहुत अधिक रूप से किया गया था और GitHub का बहुत ही दस्तावेज़ीकरण था। यह उन कुछ उत्तरों और टिप्पणियों से परिलक्षित होता है, जो उन शब्दों के बीच के सूक्ष्म अंतर को स्पष्ट करते हैं और जब एक को दूसरे पर पसंद किया जाता है। अंतर हमेशा सूक्ष्म था, जैसे कि मुद्दा ट्रैकर परियोजना का हिस्सा है लेकिन रिपॉजिटरी का हिस्सा नहीं है जिसे एक सख्ती से बात के रूप में सोचा जा सकता है आदि।

अब नहीं है।

वर्तमान में रिपॉज और प्रोजेक्ट्स एक अलग प्रकार की संस्थाओं को संदर्भित करते हैं जिनके पास अलग-अलग एपीआई हैं :

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

परिणाम यह है कि रिपोज और प्रोजेक्ट आमतौर पर भ्रमित होते हैं और हर बार जब आप गीथहब प्रोजेक्ट्स के बारे में पढ़ते हैं तो आपको आश्चर्य होता है कि क्या यह वास्तव में प्रोजेक्ट्स के बारे में है या रेपो के बारे में है। अगर उन्होंने किसी अन्य नाम या "संक्षिप्त नाम" जैसे एक संक्षिप्त नाम को चुना होता, तो हम जान सकते थे कि चर्चा किस प्रकार की इकाई है, ठोस गुणों के साथ एक सटीक वस्तु, या सामान्य बोलने वाले रेपो जैसी परियोजना की तरह।

शब्द जो आमतौर पर अस्पष्ट है, वह है "प्रोजेक्ट बोर्ड"

हम एपीआई से क्या सीख सकते हैं

प्रोजेक्ट्स API के दस्तावेज़ में पहला समापन बिंदु:

के रूप में वर्णित है: सूची भंडार परियोजनाओं । इसका मतलब है कि एक भंडार में कई परियोजनाएं हो सकती हैं। तो उन दोनों का मतलब एक ही नहीं हो सकता। यदि प्रोजेक्ट अक्षम हैं तो इसमें प्रतिक्रिया शामिल है :

{
  "message": "Projects are disabled for this repo",
  "documentation_url": "https://developer.github.com/v3"
}

जिसका अर्थ है कि कुछ रिपोज में परियोजनाएं अक्षम हो सकती हैं। फिर से, वे वही चीजें नहीं हो सकती हैं जब एक रेपो परियोजनाओं को अक्षम कर सकता है।

कुछ अन्य दिलचस्प समापन बिंदु हैं:

  • एक रिपॉजिटरी प्रोजेक्ट बनाएं -POST /repos/:owner/:repo/projects
  • एक संगठन परियोजना बनाएं -POST /orgs/:org/projects

लेकिन वहाँ कोई नहीं है :

  • उपयोगकर्ता का प्रोजेक्ट बनाएं -POST /users/:user/projects

जो हमें एक और अंतर की ओर ले जाता है:

1. भंडार उपयोगकर्ताओं या संगठनों
से संबंधित हो सकते हैं। 2. परियोजनाएँ रिपॉजिटरी या संगठनों से संबंधित हो सकती हैं

या, अधिक महत्वपूर्ण बात:

1. परियोजनाएँ रिपॉजिटरी से संबंधित हो सकती हैं, लेकिन दूसरी तरह से नहीं।
2. परियोजनाएँ संगठनों की हो सकती हैं, लेकिन उपयोगकर्ताओं की नहीं
। 3. रिपॉजिटरी संगठनों और उपयोगकर्ताओं की हो सकती हैं

यह सभी देखें:

मुझे पता है कि यह भ्रामक है। मैंने इसे ठीक-ठीक समझाने की कोशिश की।


एटलसियन के बिटबकेट में, आप ऐसी परियोजनाएं बना सकते हैं, जिसमें संबंधित प्रतिनिधि के परिवार शामिल हों। क्या गितुब में यह संगठनात्मक विशेषता है? मुझे गितुब प्रोजेक्ट्स की उम्मीद थी कि यह बात होगी, लेकिन यह स्पष्ट रूप से नहीं है। मुझे यह पता नहीं लग सकता है कि गितुब में इस संगठन को कैसे संभव बनाया जाए। मैं बिटबकेट के लिए बहुत अभ्यस्त हूं, इसलिए यह केवल सीखने की अवस्था हो सकती है।
Ungeheuer

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

19

GitHub Repositories का उपयोग उन सभी फ़ाइलों, फ़ोल्डरों और अन्य संसाधनों को संग्रहीत करने के लिए किया जाता है, जिनकी आपको परवाह है।

Git Project: यह Git Repository में संसाधन में से एक है और इसका मुख्य उपयोग विजुअल बोर्ड के साथ परियोजनाओं का प्रबंधन करना है। यदि आप Git Repository में कोई प्रोजेक्ट बनाते हैं तो यह प्रोजेक्ट को प्रबंधित करने के लिए एक Kanban बोर्ड की तरह एक दृश्य बोर्ड बनाता है।

इस तरह, आपके पास रिपॉजिटरी में कई प्रोजेक्ट हो सकते हैं।


4

सामान्य तौर पर, GitHub पर, 1 रिपॉजिटरी = 1 प्रोजेक्ट । उदाहरण के लिए: https://github.com/spring-projects/spring-boot । लेकिन यह एक कठिन नियम नहीं है।

1 भंडार = कई परियोजनाएँ । उदाहरण के लिए: https://github.com/donhuvy/java_examples

1 परियोजनाएं = कई रिपोजिटरी । उदाहरण के लिए: https://github.com/zendframework/zendframework (Zend फ्रेमवर्क 3 नामक 1 परियोजना में 61 + 1 = 62 रिपॉजिटरी हैं, विश्वास नहीं करते हैं? Zend फ्रेमवर्क के मॉड्यूल + मुख्य रिपॉजिटरी की गिनती करें)

मैं पूरी तरह से @Brandon इब्नोटन की टिप्पणी से सहमत हूँ :

एक GitHub रिपॉजिटरी सिर्फ एक "निर्देशिका" है जहां फ़ोल्डर और फाइलें मौजूद हो सकती हैं।


आपके प्रतिक्रिया के लिए धन्येवाद। लेकिन मुझे नहीं लगता कि किसी प्रोजेक्ट की आपकी परिभाषा GitHub को प्रोजेक्ट कहती है, क्योंकि कई प्रोजेक्ट-रिपॉजिटरी के उदाहरण उन रिपॉजिटरी के लिए प्रोजेक्ट टैब में कुछ भी नहीं दिखाते हैं। क्या आप इस बारे में विस्तार से बता सकते हैं?
कार्लोसियरा

2
दरअसल, Zend फ्रेमवर्क का उपयोग करने वाला उदाहरण पूरी तरह से गलत है! GitHub के नामकरण के अनुसार, "zendframework" नाम का एक संगठन है, जो कई रिपॉजिटरी का मालिक है, जिसमें एक "zendframework" भी शामिल है और एक फ्रेमवर्क के प्रत्येक मॉड्यूल के लिए है।
igorcadelima

3
9 नवम्बर 2017: के उदाहरण 1 भंडार = कई परियोजनाओं रिटर्न एक 404.
ब्रैम Vanroy

1
लिंक टूटे हैं
Pmpr

1
GitHub के संदर्भ में, यह उत्तर ऊपर के अन्य अधिक लोकप्रिय उत्तरों का विरोध कर रहा है।
मनोहर रेड्डी पोरेड्डी

1

गिट शब्दावली के संबंध में, एक प्रोजेक्ट वह फ़ोल्डर है जिसमें वास्तविक सामग्री (फाइलें) रहती हैं। जबकि रिपॉजिटरी (रेपो) वह फ़ोल्डर है जिसके अंदर git प्रोजेक्ट फ़ोल्डर में किए गए प्रत्येक परिवर्तन का रिकॉर्ड रखता है । लेकिन एक सामान्य अर्थ में, इन दोनों को एक ही माना जा सकता है। प्रोजेक्ट = रिपोजिटरी


1

मेरी समझ में वैचारिक अंतर यह है कि एक परियोजना में कई रेपो हो सकते हैं और जो एक दूसरे से स्वतंत्र होते हैं, जबकि एक साथ एक रेपो में कई परियोजनाएं हो सकती हैं। रेपो कोड के लिए सिर्फ एक भंडारण स्थान है, जबकि एक परियोजना एक निश्चित सुविधा के लिए कार्यों का एक संग्रह है।

क्या इसका कोई मतलब है? एक बड़े रेपो में एक ही समय में अलग-अलग लोगों द्वारा कई प्रोजेक्ट्स पर काम किया जा सकता है (एक मोनोलिथ में बहुत सारे अंतर फीचर जोड़े जा रहे हैं), एक बड़े प्रोजेक्ट में कई छोटे रिपोज हो सकते हैं जो अलग-अलग होते हैं लेकिन एक ही प्रोजेक्ट का हिस्सा होते हैं जो प्रत्येक के साथ इंटरैक्ट करते हैं अन्य - microservices? इसका एक व्यक्तिगत लेना है जो आप करना चाहते हैं। मुझे लगता है कि रेपो (भंडारण) बनाम परियोजना (कार्य) मुख्य अंतर है - अगर मैं गलत हूं तो कृपया मुझे बताएं / समझाएं! धन्यवाद।


0

इस विषय के बारे में मेरी व्यक्तिगत समझ है।

एक परियोजना के लिए, हम विभिन्न रिपॉजिटरी द्वारा संस्करण नियंत्रण कर सकते हैं। और एक भंडार के लिए, यह एक संपूर्ण परियोजना या परियोजनाओं के हिस्से का प्रबंधन कर सकता है।

आपकी परियोजना के बारे में (कई प्रोटोटाइप अनुप्रयोग जो उनमें से प्रत्येक से स्वतंत्र हैं)। आप एक रिपॉजिटरी या कई रिपॉजिटरी द्वारा परियोजना का प्रबंधन कर सकते हैं, अंतर:

  1. एक रिपॉजिटरी द्वारा प्रबंधित करें। यदि अनुप्रयोगों में से एक को बदल दिया जाता है, तो पूरी परियोजना (सभी अनुप्रयोग) एक नए संस्करण के लिए प्रतिबद्ध होगी।

  2. कई रिपॉजिटरी द्वारा प्रबंधित करें। यदि एक एप्लिकेशन को बदल दिया जाता है, तो यह केवल रिपॉजिटरी को प्रभावित करेगा जो एप्लिकेशन को प्रबंधित करता है। अन्य रिपॉजिटरी के लिए संस्करण नहीं बदला गया था।

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