इस शानदार टूल को जानें और समझें।
टीएल; डीआर: जीआईटी क्या है और आपको इसका उपयोग कैसे करना सीखना चाहिए?
मैं अलग-अलग दर्शकों को जीआईटी को पांच स्तरों में समझाऊंगा।
कई जूनियर डेवलपर्स मुझसे पूछ रहे हैं कि अपना करियर शुरू करने के लिए कौन सी भाषा या फैंसी फ्रेमवर्क बेहतर है।
मेरा जवाब हमेशा एक ही होता है:
भाषाएं और ढांचे आते हैं और जाते हैं। अंग्रेजी का अध्ययन करें और GIT का अध्ययन करें।
जीआईटी एक जादुई नोटबुक की तरह है जहां आप अपने कंप्यूटर प्रोजेक्ट में किए गए सभी परिवर्तनों को लिख सकते हैं।
क्या आप जानते हैं कि जब आप एक चित्र बनाते हैं, और आप इसे मिटा नहीं सकते हैं या इसे पहले जैसा बना सकते हैं?
कभी-कभी, जब हम बड़े प्रोजेक्ट पर काम करते हैं, तो हम भी वापस जाना चाहते हैं और अपने चित्रों के पुराने संस्करण देखना चाहते हैं।
आप अपने चित्रों के सभी विभिन्न संस्करणों को रख सकते हैं और यदि आप चाहें तो वापस जाकर उन्हें देख सकते हैं।
आप परिवर्तनों के साथ भ्रम का अनुभव किए बिना अपने दोस्तों के साथ एक ही चित्र बना सकते हैं।
यह आपके काम के लिए टाइम कैप्सूल की तरह है।
GIT आपकी कंप्यूटर फ़ाइलों में परिवर्तनों पर नज़र रखने का एक उपकरण है, खासकर जब किसी प्रोजेक्ट पर अन्य लोगों के साथ काम कर रहे हों।
दोस्त एक ही फाइल पर एक ही समय में काम कर सकते हैं, गलती से एक दूसरे के परिवर्तनों को अधिलेखित किए बिना।
जीआईटी आपको अपने काम के विभिन्न संस्करणों को सहेजने की भी अनुमति देता है, इसलिए यदि आपको आवश्यकता हो तो आप पिछले संस्करण पर वापस जा सकते हैं।
जीआईटी एक वितरित संस्करण नियंत्रण प्रणाली है।
यह डेवलपर्स को एक दूसरे के परिवर्तनों में हस्तक्षेप किए बिना एक ही कोडबेस पर एक साथ काम करने की अनुमति देता है।
यह फ़ाइलों में परिवर्तनों को ट्रैक करने के लिए एक अद्वितीय एल्गोरिदम का उपयोग करता है।
GIT कोडबेस में किए गए सभी परिवर्तनों का इतिहास रखता है।
स्वतंत्र रूप से काम करने की क्षमता को बनाए रखते हुए, डेवलपर्स एक ही परियोजना पर सहयोग कर सकते हैं।
यदि आपको अपने काम के पुराने संस्करण पर वापस जाने की आवश्यकता है, तो यह टूल आपके द्वारा लिखे गए कोड के साथ ऐसा करना आसान बनाता है।
सॉफ्टवेयर डेवलपर जीआईटी का व्यापक रूप से उपयोग करते हैं और इसे उद्योग मानक मानते हैं।
यह ओपन-सोर्स भी है जिसका मतलब है कि कोई भी इसे मुफ्त में इस्तेमाल कर सकता है।
जीआईटी डेवलपर्स को समय के साथ स्रोत कोड में किए गए परिवर्तनों को ट्रैक करने की अनुमति देता है।
यह टूल एक ही कोडबेस पर कई डेवलपर्स के एक साथ सहयोग की अनुमति देता है, जबकि प्रत्येक व्यक्तिगत डेवलपर द्वारा किए गए सभी परिवर्तनों का एक व्यापक रिकॉर्ड भी बनाए रखता है।
जीआईटी कोड के विभिन्न संस्करणों के आसान सहयोग, परिवर्तनों के रोलबैक और प्रबंधन की अनुमति देता है।
जीआईटी की कुछ प्रमुख विशेषताओं में शाखाएं बनाने और उन्हें मर्ज करने की क्षमता, कोडबेस में किए गए परिवर्तनों के इतिहास को देखना और विरोधों को संभालना शामिल है।
संघर्ष तब होता है जब कई लोग एक ही कोड पर काम कर रहे होते हैं।
जीआईटी एक वितरित संस्करण नियंत्रण प्रणाली है जो सॉफ्टवेयर डेवलपर्स को उनके स्रोत कोड में किए गए परिवर्तनों को प्रबंधित और ट्रैक करने की अनुमति देती है।
यह एक डेटा मॉडल पर आधारित है जिसमें कमिट का एक निर्देशित एसाइक्लिक ग्राफ होता है, जहां प्रत्येक कमिट एक विशिष्ट समय पर कोडबेस के स्नैपशॉट का प्रतिनिधित्व करता है।
जीआईटी कई शाखाओं को एक कोडबेस में मौजूद होने की अनुमति देता है, जिसमें आसानी से एक शाखा से दूसरी शाखा में परिवर्तन मर्ज करने की क्षमता होती है।
यह तीन-तरफ़ा मर्ज एल्गोरिथम का उपयोग करता है, जो इसे कई शाखाओं से परिवर्तन विलय करते समय उत्पन्न होने वाले संघर्षों को कुशलता से संभालने की अनुमति देता है।
GIT कमिट करने से पहले परिवर्तन करने की अनुमति देता है।
आप GIT LFS का उपयोग करके कार्यों को स्वचालित करने और बड़ी बाइनरी फ़ाइलों को संभालने के लिए हुक का उपयोग कर सकते हैं।
जीआईटी के साथ, कई स्थानीय और दूरस्थ रिपॉजिटरी के बीच उत्पन्न और संक्रमण संभव है।
GIT के पास एक मजबूत प्लगइन पारिस्थितिकी तंत्र और विभिन्न तृतीय-पक्ष उपकरण हैं।
कुछ उपकरण GIT GUI क्लाइंट, GIT होस्टिंग प्लेटफॉर्म और GIT वर्कफ़्लो ऑटोमेशन टूल हैं, जो टीमों को उनकी आवश्यकताओं के अनुरूप विभिन्न तरीकों से GIT का उपयोग करने में सक्षम बनाते हैं।
GIT द्वारा उपयोग किया जाने वाला तीन-तरफ़ा मर्ज एल्गोरिथ्म फ़ाइल के सामान्य पूर्वज संस्करण की तुलना वर्तमान शाखा के संस्करण और उस शाखा के संस्करण से करता है जिसे विलय किया जा रहा है।
यह GIT को विभिन्न शाखाओं में किए गए परिवर्तनों को विलय करते समय उत्पन्न होने वाले विरोधों का पता लगाने और उन्हें संभालने की अनुमति देता है।
तीन-तरफ़ा मर्ज की प्रक्रिया निम्नानुसार काम करती है:
जीआईटी पहले विलय की जा रही फ़ाइल के सामान्य पूर्वज संस्करण की पहचान करता है। यह फ़ाइल का वह संस्करण है जो वर्तमान और लक्षित शाखाओं में कोई परिवर्तन किए जाने से पहले मौजूद था।
GIT फ़ाइल के पूर्वज संस्करण की तुलना वर्तमान शाखा के संस्करण से करता है। यह तब फ़ाइल के एक विशेष "वर्तमान" संस्करण में वर्तमान शाखा में किए गए सभी परिवर्तनों को रिकॉर्ड करता है।
GIT लक्ष्य शाखा में संस्करण के साथ फ़ाइल के पूर्वज संस्करण की तुलना करता है और फ़ाइल के एक विशेष "लक्ष्य" संस्करण में लक्ष्य शाखा में किए गए सभी परिवर्तनों को रिकॉर्ड करता है।
GIT फ़ाइल का सामान्य पूर्वज संस्करण लेता है और वर्तमान और लक्ष्य संस्करणों में दर्ज किए गए परिवर्तनों को लागू करता है। यदि कोई विरोध उत्पन्न होता है (उदाहरण के लिए, यदि कोड की समान पंक्तियों को वर्तमान और लक्षित शाखाओं दोनों में बदल दिया गया है), GIT इन विरोधों को फ़ाइल के अंतिम संस्करण में चिह्नित करेगा और उपयोगकर्ता को उन्हें मैन्युअल रूप से हल करने के लिए संकेत देगा।
इस एल्गोरिथम का उपयोग करके, GIT मर्ज संघर्षों को कुशलता से प्रबंधित कर सकता है और गारंटी देता है कि फ़ाइल का अंतिम संस्करण दोनों शाखाओं में किए गए परिवर्तनों के सुसंगत और सुसंगत एकीकरण का प्रतिनिधित्व करता है।