"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मिनी-गिट, यह समझना कि गिट ऑब्जेक्ट में फ़ाइलें कैसे संग्रहीत की जाती हैं

मिनी-गिट, यह समझना कि गिट ऑब्जेक्ट में फ़ाइलें कैसे संग्रहीत की जाती हैं

2024-08-24 को प्रकाशित
ब्राउज़ करें:910

Mini-git, Understanding How Files Are Stored in Git Objects

कल, मैंने Git की मुख्य कार्यक्षमताओं में से एक को स्वयं लागू करने का निर्णय लिया- विशेष रूप से, फ़ाइलें कैसे संग्रहीत की जाती हैं, Git ऑब्जेक्ट क्या हैं, और हैशिंग और कंप्रेसिंग की प्रक्रियाएं। इसे विकसित करने में मुझे 4 घंटे लगे, और इस लेख में, मैं आपको अपनी विचार प्रक्रिया और दृष्टिकोण के बारे में बताऊंगा।

जब आप कोई फ़ाइल प्रतिबद्ध करते हैं तो क्या होता है?

जब आप Git में कोई फ़ाइल बनाते हैं, तो हुड के अंतर्गत कई महत्वपूर्ण चरण होते हैं:

फ़ाइल संपीड़न:

फ़ाइल की सामग्री को उसके आकार को कम करने के लिए zlib एल्गोरिदम का उपयोग करके संपीड़ित किया जाता है। यह संपीड़ित सामग्री Git ऑब्जेक्ट डेटाबेस में संग्रहीत होती है।

हैश गणना:

संपीड़ित फ़ाइल सामग्री से एक अद्वितीय SHA-1 हैश उत्पन्न होता है। यह हैश Git ऑब्जेक्ट डेटाबेस में फ़ाइल के लिए पहचानकर्ता के रूप में कार्य करता है।

वस्तु का भंडारण:

ऑब्जेक्ट फ़ाइल को हैश के पहले दो अक्षरों द्वारा व्यवस्थित .mygit/objects निर्देशिका में संग्रहीत किया जाता है। यह संरचना वस्तुओं को कुशलतापूर्वक प्रबंधित करना और पुनः प्राप्त करना आसान बनाती है।
प्रतिबद्ध जानकारी अद्यतन कर रहा है:

यह प्रदर्शित करने के लिए कि फ़ाइलें git में कैसे संग्रहित की जाती हैं।
मैंने एक फ़ाइल को ध्यान में रखते हुए प्रतिबद्ध कार्यक्षमता लागू की है

  1. प्रत्येक फ़ाइल के लिए, मैंने हैश की गणना की है
  2. ऑब्जेक्ट फ़ोल्डर के अंदर, हैश के पहले दो अक्षरों के बराबर नाम के साथ नया फ़ोल्डर बनाया जाता है।
  3. और उस फ़ोल्डर के अंदर नाम के रूप में शेष हैश के साथ एक फ़ाइल बनाई जाती है। (यह फ़ाइल प्रतिबद्ध फ़ाइल के संपीड़ित प्रारूप को संग्रहीत करती है)
  4. फ़ाइल के नए परिकलित हैश और अंतिम परिकलित हैश की तुलना करके परिवर्तनों का पता लगाया गया

परिवर्तनों का पता लगाना

मैंने इस एल्गोरिदम को अपने दृष्टिकोण के आधार पर लागू किया है, लेकिन Git इन परिचालनों के लिए अधिक कुशल एल्गोरिदम का उपयोग करता है।

  1. पुरानी सामग्री और नई सामग्री से पंक्तियों की निकाली गई सरणी
  2. लाइन को कुंजी के रूप में और इंडेक्स को मान के रूप में संग्रहीत करने के लिए एक मानचित्र बनाया गया
  3. पुरानी सामग्री और नई सामग्री में सामान्य पंक्तियों के अनुक्रमणिका को संग्रहीत करने के लिए दो नई सारणी बनाई गईं 4.उदाहरण: OldCommonarray = [0, 3] तो हटाई गई पंक्तियाँ [1,2]
  4. होंगी

गिटहब रेपो
लिंक्डइन

आपके समय के लिए बहुत बहुत धन्यवाद।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/keerthiwardhan1/mini-git-understanding-how-files-are-stored-in-git-objects-5bfb?1 यदि कोई उल्लंघन है, तो कृपया स्टडी_गोलंग@163 से संपर्क करें इसे हटाने के लिए .com
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3