GIT और GitHub अगर आप IT या सॉफ्टवेयर इंजिनियर / डेवलपर से सम्बन्ध रखते है तो आप जितना जल्द इसके बारें में सिख लेंगे उतना ही आपके करियर के लिए लाभदायक सावित होगा इस ब्लॉग में आप जानेंगे की GIT वास्तव में इंटरनली किस तरह से काम करता है | GIT क्या है ? इसका आर्टिकल मैंने पहले पब्लिश कर दिया हूँ आप उसे पढ़ सकते है |
गिट इंटरनली कैसे काम करता है ? -How Git Works Internally ?
अगर आप नहीं जानते की git क्या है तो मैं आप सभी को बता दूं की git एक Version Control System है |
यानि की जब हम कोडिंग करते है उसके बाद अगर हम उस कोड में कुछ अपडेट करते है तो उस अपडेट का हिस्ट्री रखता है की क्या अपडेट हुआ है कौन अपडेट किया कब अपडेट किया है |
अब हमलोग ये समझते है की वास्तव में ये सब होता कैसे है | git हिस्ट्री ट्रैक रखने के लिए सोर्स कोड के फाइल को git अपने लिए hash number में कन्वर्ट करके git डेटाबेस में .git/object फोल्डर में सेव करेगा |
उस डेटा को hash नाम से पहचान देगा जिसे blob object कहा जाता है दो से अधिक फाइल का कंटेंट सैम होने के वाबजूद भी git एक ही hash बनता है | अगर सोर्स कोड में थोड़ा भी बदलाव होता है hash number बदल जाता है |
git किसी भी फाइल को सेव करने से पहले उसे ऑब्जेक्ट में बदल देता है
Understanding the .git Folder
Git में .git फोल्डर सबसे महत्वपूर्ण फोल्डर होता है या हम कर सकते है git का heart होता ये फोल्डर अगर किसी कारण से डिलीट हुआ तो समझो सारा कंटेंट डिलीट हो गया | इस फोल्डर में चार तरह के Blob, Tree, Commit , Tag ऑब्जेक्ट होते है जो वर्शन कंट्रोल के अत्यंत महत्वपूर्ण होता है |
Git Objects: Blob, Tree, Commit
git फाइल को स्टोर करने के लिए मुख्य रूप से तीन प्रकार के ऑब्जेक्ट का इस्तेमाल करता है
- Blob(Binary Large Object ) : इस ऑब्जेक्ट में फाइल का सिर्फ और सिर्फ कंटेंट होता है | वास्तव में पूरा डेटा इसी के अन्दर होता है |
- Tree : यह एक फोल्डर के तरह होता है जिसमे फाइल के नाम होते है और कौन सा फाइल किस blob से जुड़ा है उसका जानकारी होता है |
- Commit : यह एक sanpeshot होता है जिसमे ट्री का जानकारी ,लेखक का नाम, समय और पिछला कमिट का हिस्ट्री स्टोर होता है |
- Tag : किसी भी कमिट का नामकरण को टैग कहा जाता है जैसे v1.2
git किसी भी फाइल को सेव करने से पहले उसे ऑब्जेक्ट में बदल देता है
How Git Tracks Changes
git हरेक बदलाव के बाद फाइल को तुलना करता है और चेक करता है क्या बदलाव हुआ है | git लाइन टू लाइन चेक नहीं करता है बल्कि पुरे कंटेंट का एक स्नैपशॉट ले लेता है |
जैसे में मैंने बताया था की git सोर्स कोड को hash में अपने समझे के लिए कन्वर्ट करता है | इसके बाद जब भी कोई बदलाव होता है git दोनों hash को compare करेगा अगर hash अलग हुआ तो git यह मान लेगा की कुछ नया अपडेट हुआ है | अगर hash सैम हुआ तो git समझ लेगा की कोई अपडेट नहीं हुआ है |
निष्कर्ष
आज आपने जाना की Inside Git: How It Works and the Role of the .git Folder के बारें में इसके अलावा आपने जाना की Git Objects: Blob, Tree, Commit एंड How Git Works Internally के बारें में भी जाना मुझे आशा की आपके लिए ये आर्टिकल लाभदायक सवित हुआ होगा धन्यवाद |

