Git में इन शब्दों का क्या अर्थ है: रिपॉजिटरी, कांटा, शाखा, क्लोन, ट्रैक?


130

मैं ईमानदारी से यहाँ शब्दार्थ पर स्पष्ट नहीं हूँ। वे सभी एक कोड + इतिहास इकाई की प्रतियों / वेरिएंट के बारे में हैं, लेकिन अतीत है कि मुझे यकीन नहीं है कि मैं कह सकता हूं। क्या इस तार्किक संरचना को कहीं समझाया गया है?


5
मैं प्रो गिट बुक ( progit.org/book ) के पहले दो अध्यायों को पढ़ने की सलाह दूंगा
ewall

61
+1। बहुत सारे git ट्यूटोरियल्स आपको बताते हैं कि कुछ शब्दों का अर्थ क्या है या git कैसे काम करता है, यह बताए बिना कुछ कार्य कैसे करें। एक संसाधन के लिए पूछना जो उन विषयों को संबोधित करता है एक वैध प्रश्न है।
डैनियल स्टटजबेक

14
काश मैं +1 डैनियल की टिप्पणी अधिक कर पाता। जबकि कुछ शब्दों (जैसे रिपॉजिटरी) का अर्थ स्पष्ट होना चाहिए, उनका संबंध हमेशा (शाखा बनाम कांटा) नहीं होता है, और वास्तविक अर्थ किसी के द्वारा केंद्रीकृत वीसीएस के लिए आसानी से गलत समझा जाता है। इसके अलावा, प्रो गिट के "एक शाखा क्या है?" अनुभाग - क्या एक मूल उपयोगकर्ता वास्तव में बूँद और पेड़ों के बारे में जानना चाहता है, या क्या वे केवल गुणात्मक रूप से जानना चाहते हैं कि एक शाखा क्या है?
कास्कैबेल

1
@DanielStutzbach उन चीजों के बारे में टिप्पणी प्रस्तुत करना संभव है जो पुस्तक में स्पष्ट नहीं हैं। (मुझे यह कहने के लिए सही शब्दावली नहीं पता है।) मैंने ऐसा किया है, मैंने कहा है कि पुस्तक को यह परिभाषित करने की आवश्यकता है कि रिपॉजिटरी क्या है। मैं इस बात से सहमत हूं कि लोगों से वैचारिक सामग्री प्राप्त करना काफी कठिन है जो किसी चीज को बहुत अच्छी तरह से समझते हैं। वह पुस्तक (वर्तमान में) डेटाबेस के बारे में बात करती है बिना यह बताए कि वे इस संदर्भ में क्या हैं और यह बताती हैं कि रिपॉजिटरी क्या हैं।
उपयोगकर्ता 34660

जवाबों:


146

एक भंडार केवल एक जगह है जहाँ आपके काम का इतिहास संग्रहीत है। यह अक्सर .gitआपकी कार्यशील प्रतिलिपि की एक उपनिर्देशिका में रहता है - उन फ़ाइलों की सबसे हाल की स्थिति की एक प्रति जो आप काम कर रहे हैं।

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

एक रिपॉजिटरी के भीतर आपकी शाखाएँ होती हैं, जो प्रभावी रूप से आपकी अपनी रिपॉजिटरी के भीतर मौजूद हैं। आपकी शाखाओं का एक पूर्वज आपकी रिपॉजिटरी में प्रतिबद्ध होगा, और आपके परिवर्तनों के साथ उस कमिट से अलग हो जाएगा। आप बाद में अपनी शाखा परिवर्तनों को मर्ज कर सकते हैं। शाखाएँ आपको एक साथ कई अलग-अलग सुविधाओं पर काम करने देती हैं।

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

ऑनलाइन बहुत सारी महान पुस्तकें हैं। आरंभ करने के लिए ProGit और Git Magic पर एक नज़र डालें , साथ ही साथ आधिकारिक ट्यूटोरियल और सामुदायिक पुस्तक।


बेशक एफ मैनुअल और ट्यूटोरियल पढ़ना मौलिक है। लेकिन यह मुझे पूरे सामान का एक बड़ा सारांश लगता है। बहुत सराहना की!
ब्रासोफिलो

ध्यान दें कि आप अपनी स्थानीय कार्यशील निर्देशिका को एक नई शाखा ("गिट चेकआउट <new_branch>") पर स्विच कर सकते हैं। इस मामले में, आपके स्थानीय कामकाजी निर्देशिका की फाइलें उस शाखा की सामग्री द्वारा प्रकाशित की जाती हैं जिस पर आप स्विच कर रहे हैं। लेकिन आप अपने काम को ढीला नहीं करते हैं: Git "Git" डेटाबेस (छिपी हुई .गित फ़ोल्डर) में पिछली शाखा पर किए गए सभी कमिट किए गए परिवर्तनों ("गिट कमिट") को संग्रहीत करता है और आपको अपनी फ़ाइलों को वापस स्विच करने देगा।
क्रिशवेबडेव जुएन

3
मुझे लगता है कि इसके लिए विशेष रूप से ऐतिहासिक उल्लेख की आवश्यकता है, इसके बावजूद कि आपने वीसीएस का इस्तेमाल किया, फोर्किंग और ब्रांचिंग को दो अलग-अलग चीजें माना गया। डेवलपर्स के बीच ब्रंचिंग को अनुकूल और निहित समझौता माना गया। फोर्किंग अधिक गंभीर था क्योंकि इसमें निहित था कि एक परियोजना पर काम करने वाले डेवलपर्स कुछ चीजों पर सहमत नहीं थे और भाग लेने का फैसला किया था। फिर दोनों पक्षों में समझौता होने के बाद सफल कांटे को आम तौर पर एक परियोजना में वापस मिला दिया गया। तब से, Git (और GitHub) ने इन शर्तों को धुंधला कर दिया है और दोनों शब्द मूल रूप से एक ही विचार का प्रतिनिधित्व करते हैं लेकिन अलग-अलग तरीकों से।
redteam316

तो एक रिपॉजिटरी में प्रोजेक्ट के लिए फाइल नहीं है? आप ऐसी जगह कहते हैं, जहाँ आपके काम का इतिहास संग्रहीत है । यही बात है न? सिर्फ फाइलों का इतिहास नहीं बल्कि खुद फाइलों का इतिहास?
उपयोगकर्ता 34660

13

मैं RTFM के साथ अपने प्रश्न का उत्तर देने जा रहा हूं।

लेकिन, यह ठीक मैनुअल पढ़ें । जैसा कि लेखक कहते हैं:

“मैं इससे निष्कर्ष निकालता हूं कि आप केवल Git का उपयोग कर सकते हैं यदि आप समझते हैं कि Git कैसे काम करता है। केवल यह याद रखना कि आपको किन कमांड्स को कम समय में चलाना चाहिए, लेकिन यह केवल समय की बात है, इससे पहले कि आप फंसें या बिगड़ें, कुछ तोड़ दें।

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


ऐसा लगता है कि यह परिचय sbf5.com/~cduan/technical/git पर स्थानांतरित कर दिया गया है । मूल URL अभी भी काम करता है।
एरिक एंडरसन

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

3

यह GoogleTechTalk Git सीखने का एक शानदार परिचय है जो कि भाषा सीखने के दौरान वास्तव में पर्दे के पीछे क्या हो रहा है। यह एक बहुत शुरुआती योगदानकर्ता द्वारा गिट को दिया गया था और उन्होंने यह बात 2007 में गिट में पेश करने के तरीके के रूप में दी। यदि आप इस बात को देखते हैं तो आप न केवल यह जान पाएंगे कि प्रत्येक शब्द क्या है, जैसे रिपॉजिटरी, फोर्क, ब्रांच, इत्यादि, लेकिन आप यह भी जान पाएंगे कि इन में से प्रत्येक के बनने, विलय होने आदि के दौरान पर्दे के पीछे क्या घटित हो रहा है।

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

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