git init के समय बनने वाली .git डायरेक्टरी का विस्तृत विवरण
.git डायरेक्टरी में config, HEAD, hooks, objects, refs जैसी कई फ़ाइलें और फ़ोल्डर शामिल होते हैं
config टेक्स्ट फ़ाइल में मौजूदा repository की git settings, author, और file mode जैसी बुनियादी settings शामिल होती हैं
HEAD फ़ाइल में repository का वर्तमान head होता है, जो default branch की ओर इशारा करता है। default branch क्या चुनी गई है, उसके अनुसार master या main आदि हो सकता है
hooks डायरेक्टरी में git operations के पहले और बाद में चलाए जा सकने वाले सभी scripts शामिल होते हैं
objects डायरेक्टरी में repository की files और commits से संबंधित data शामिल होता है
refs डायरेक्टरी में branches और tags को इंगित करने वाले references या pointers संग्रहीत होते हैं
- जब किसी फ़ाइल को repository में जोड़ा जाता है, तो
index फ़ाइल संशोधित होती है और objects डायरेक्टरी में नए फ़ोल्डर और फ़ाइलें जुड़ती हैं
objects डायरेक्टरी की नई फ़ाइल में जोड़ी गई फ़ाइल का type, size, और data शामिल होता है, और उसका फ़ाइल नाम सामग्री के sha1 से लिया जाता है
- जब फ़ाइल commit की जाती है, तो commit message को शामिल करने वाली
COMMIT_EDITMSG नाम की नई फ़ाइल बनती है और objects डायरेक्टरी में नया object जुड़ने सहित कई बदलाव होते हैं
- git में branch बनाना एक सरल प्रक्रिया है, जिसमें
refs/heads डायरेक्टरी में branch नाम और नवीनतम commit की ID वाली नई फ़ाइल जोड़ना शामिल है
- branch checkout में
.git/HEAD फ़ाइल को अपडेट किया जाता है ताकि वह checkout की गई branch की ओर इशारा करे
- branch merge तीन तरीकों से किया जा सकता है: fast forward merge, rebase merge, और अलग merge commit बनाना
- जब repository को push किया जाता है, तो
objects डायरेक्टरी की सारी सामग्री और स्पष्ट रूप से push किए गए refs के अंतर्गत आने वाली सभी branches और tags दूसरी git repository में भेज दिए जाते हैं
1 टिप्पणियां