सबसे सरल संस्करण नियंत्रण प्रणाली. संस्करण नियंत्रण प्रणाली - कौन सा बेहतर है? पिछले संस्करण के साथ बुनियादी कार्यों की संक्षिप्त तुलना

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

आइए इसका पता लगाएं," संस्करण नियंत्रण प्रणाली क्या है?(वीसीएस), और यह इतना महत्वपूर्ण क्यों है। और साथ ही, आइए देखें संस्करण नियंत्रण प्रणाली तुलना.

संस्करण नियंत्रण प्रणाली (वीसीएस)एक ऐसी प्रणाली है जो आपको समय के साथ किसी फ़ाइल (या फ़ाइलों के सेट) में परिवर्तन रिकॉर्ड करने की अनुमति देती है और बाद में किसी विशिष्ट संस्करण पर वापस लौटना संभव बनाती है। संस्करण नियंत्रण का उपयोग किसी भी प्रकार की फ़ाइल के लिए किया जा सकता है: या तो स्रोत कोड सॉफ़्टवेयर, छवियाँ, पृष्ठ लेआउट, आदि।

अन्य संस्करण नियंत्रण प्रणालियों से महत्वपूर्ण अंतर

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

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

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

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

संस्करण नियंत्रण प्रणाली

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

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

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

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

स्थानीय संस्करण नियंत्रण प्रणाली का उदाहरण - आर.सी.एस..

केंद्रीकृत संस्करण नियंत्रण प्रणाली एसवीएन (सबवर्जन), सीवीएस और पर्सफोर्स

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

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

संस्करण नियंत्रण क्या है और आपको इसकी आवश्यकता क्यों है?

यह आलेख इनमें से कुछ पर चर्चा करता है सर्वोत्तम प्रणालियाँओपन सोर्स संस्करण नियंत्रण और उपकरण जो आपके संस्करण नियंत्रण प्रणाली को अनुकूलित करना आसान बनाते हैं।





वितरित संस्करण नियंत्रण प्रणाली का उपयोग करते समय, कोड पुनर्प्राप्ति के लिए कोई एकल केंद्रीकृत कोड आधार नहीं होता है। विभिन्न शाखाएँ कोड के विभिन्न भागों पर कब्जा कर लेती हैं।





इसका मतलब यह नहीं है कि छोटी विकास टीमें इसका उपयोग नहीं कर सकती हैं या नहीं करना चाहिए।


यह स्वयं को "लोगों के लिए संस्करण नियंत्रण" कहता है।


सभी डेवलपर्स सीएसकेवी(कुछ हद तक) यह पता लगाने में सक्षम होंगे कि अन्य डेवलपर्स क्या कर रहे हैं। प्रशासकों का परियोजना पर पूर्ण नियंत्रण होता है: उनके पास यह नियंत्रित करने की क्षमता होती है कि कौन क्या कर सकता है।

इस तथ्य के बावजूद कि एक केंद्रीकृत संस्करण नियंत्रण प्रणाली कई लाभ प्रदान करती है स्थानीय प्रणालीसंस्करण नियंत्रण, इसमें गंभीर कमियाँ हैं। यदि सर्वर कुछ समय के लिए बंद हो जाता है, तो क्लाइंट परिवर्तनों को सहेजने और उन परिवर्तनों को अन्य क्लाइंट के साथ साझा करने के लिए संस्करण नियंत्रण का उपयोग नहीं कर पाएंगे। या, यदि सर्वर पर डेटा खो गया है (उदाहरण के लिए, एचडीडी), तो पूरा प्रोजेक्ट नष्ट हो जाएगा।

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

तो हमें संस्करण नियंत्रण प्रणाली की आवश्यकता क्यों है?

इसीलिए हम Save As का उपयोग करते हैं। आप पुरानी फ़ाइल को मिटाए बिना एक नई फ़ाइल चाहते हैं। यह एक आम समस्या है और समाधान आमतौर पर ऐसे ही होते हैं। उम्मीद है कि फ़ाइल को सहेजने के बाद वे उसे पुनः लेबल करेंगे। . प्रत्येक प्रोग्रामर केवल एक अलग सबफ़ोल्डर में काम करता है?

विकेंद्रीकृत संस्करण नियंत्रण प्रणाली Git, मर्क्यूरियल, बाज़ार, डार्क्स

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

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

  • बैकअपऔर पुनर्प्राप्ति.
  • कोई बात नहीं।
  • तादात्म्य।
  • लोगों को फ़ाइलें साझा करने और नवीनतम संस्करणों के साथ अपडेट रहने की अनुमति देता है।
साझा किए गए फ़ोल्डर तेज़ और सरल हो सकते हैं, लेकिन उन सुविधाओं को मात नहीं दे सकते।

क्या आप आधे समय में टीम आईटी विकास परियोजनाओं पर काम करना चाहते हैं? हमारा नया लेखक पाठ्यक्रम लें और सीखें कि Git के सभी लाभों का उपयोग कैसे करें!

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

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

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

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

सबसे सरल परिदृश्य किसी फ़ाइल की जाँच करना और उसे समय के साथ बदलना है। हर बार हम जांच करते हैं नया संस्करण, हमें एक नया संस्करण मिल रहा है। वास्तव में, आप फ़ाइल की जाँच नहीं कर सकते। आपको समीक्षा, संपादन और पंजीकरण करने की आवश्यकता हो सकती है।

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

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

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

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

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

यह अनूठा पाठ्यक्रम लें - और आपकी टीम का कोई भी आईटी विकास प्रोजेक्ट प्रभावी होगा!

चूँकि हम एक अलग शाखा में हैं, हम परिवर्तन कर सकते हैं और अलगाव में परीक्षण कर सकते हैं, यह जानते हुए कि हमारे परिवर्तनों से किसी को नुकसान नहीं होगा। और हमारी शाखा का इतिहास संस्करण नियंत्रण में है। इसलिए वैचारिक रूप से ब्रांचिंग बहुत कठिन नहीं है: मान लीजिए कि आपने अपना कोड किसी अन्य निर्देशिका में कॉपी कर लिया है। आपने संभवतः अपना कोड स्कूल परियोजनाओं में डाल दिया है, यह सुनिश्चित करते हुए कि आपके पास एक "फेलसेफ" संस्करण है जिसे आप कुछ गड़बड़ी होने पर वापस ले सकते हैं।

ब्रांचिंग सरल लगती है, है ना? खैर, यह सच नहीं है: यह पता लगाना कि एक शाखा से दूसरी शाखा में परिवर्तनों को कैसे मर्ज किया जाए, मुश्किल हो सकता है। मान लीजिए कि हम अपनी प्रायोगिक शाखा से राइस फीचर को ट्रंक में धकेलना चाहते हैं। हम शाखा में हुए बदलावों को लागू करना चाहते हैं! यह एक सूक्ष्म बिंदु है - एक प्रायोगिक शाखा से परिवर्तनों को "छीलने" और इसे मुख्य शाखा में जोड़ने की कल्पना करें। मुख्य ट्रंक के अंदर, कमांड चलाएँ। पर इस पलयह एक दौड़ है: यदि जो पहले जाँच करता है, तो यह एक बदलाव है जो होकर गुजरता है।



मित्रों को बताओ