एक झूलती हुई प्रतिबद्धता एक ऐसी प्रतिबद्धता है जो संदर्भ से जुड़ी नहीं है, यानी उस तक पहुंचने का कोई रास्ता नहीं है।
उदाहरण के लिए, नीचे दिए गए आरेख पर विचार करें। मान लीजिए कि हम शाखा फीचरएक्स को उसके परिवर्तनों को मर्ज किए बिना हटा देते हैं, तो प्रतिबद्ध डी एक झूलने वाली प्रतिबद्धता बन जाएगी क्योंकि इससे जुड़ा कोई संदर्भ नहीं है। अगर इसे मास्टर में मिला दिया जाता, तो HEAD और मास्टर रेफरेंस ने D को कमिट कर दिया होता और यह अब झूलने वाला नहीं होता, भले ही हमने फीचर एक्स को डिलीट कर दिया हो। इसे बेहतर समझने के लिए चित्र के बाद नोट पढ़ें।
Git स्वचालित रूप से कचरा एकत्र करता है (यानी निपटता है) झूलने वाले कमिट। हम git reflog
एक शाखा (झूलने वाले कमिट) को पुनर्प्राप्त करने के लिए उपयोग कर सकते हैं जो इसे विलय किए बिना हटा दिया गया था। हम हटाए गए कमिट्स को केवल तभी पुनर्प्राप्त कर सकते हैं जब वह स्थानीय ऑब्जेक्ट स्टोर में मौजूद हो। यदि यह कचरा एकत्र किया गया था, तो हम इसे पुनर्प्राप्त नहीं कर सकते हैं।
ध्यान दें कि एक शाखा का नाम यानी शाखा लेबल वास्तव में एक शाखा पर नवीनतम प्रतिबद्ध के लिए एक संदर्भ है यानी शाखा की नोक। ऊपर दिए गए आरेख में, फीचरएक्स, मास्टर और हेड केवल विशिष्ट कमिट के संदर्भ हैं। फीचरएक्स और मास्टर लेबल अपनी संबंधित शाखाओं पर नवीनतम आवागमन का उल्लेख करते हैं। हेड आम तौर पर वर्तमान में चेक आउट शाखा (इस मामले में मास्टर) की नोक को संदर्भित करता है। यदि आप अपनी वर्तमान शाखा पर एक पुरानी प्रतिबद्धता की जांच करते हैं, तो HEAD एक अलग स्थिति में होगा, अर्थात यह नवीनतम के बजाय पुराने प्रतिबद्ध को इंगित करेगा। यह भी ध्यान दें कि HEAD को एक प्रतीकात्मक संदर्भ कहा जाता है क्योंकि यह वास्तव में वर्तमान शाखा लेबल की ओर इशारा करता है और कोई भी शाखा लेबल हमेशा शाखा के सिरे की ओर इंगित करता है। इसलिए, सामान्य परिस्थितियों में, HEAD अप्रत्यक्ष रूप से नवीनतम प्रतिबद्ध की ओर इशारा करता है।
एक तरफ के रूप में, ध्यान दें कि गिट एक निर्देशित एसाइक्लिक ग्राफ के रूप में अपने प्रतिबद्ध ग्राफ / इतिहास का प्रतिनिधित्व करता है । प्रत्येक वचन में इसका संदर्भ दिया गया है। इसलिए, बच्चे से माता-पिता के लिए प्रतिबद्ध आरेख बिंदु में तीर प्रतिबद्ध है। हमें एक शाखा पर पुराने कमिट्स तक पहुंचने के लिए नवीनतम बच्चे के लिए एक संदर्भ की आवश्यकता है।
पुनश्च - उपरोक्त आरेख और समझ इस मुफ्त पाठ्यक्रम से प्राप्त की गई थी । हालांकि यह पाठ्यक्रम काफी पुराना है, फिर भी ज्ञान अभी भी प्रासंगिक है।
git gc
, इनको दूर करना सुरक्षित है , और 2) मुझे इस बारे में बिल्कुल भी चिंता करने की आवश्यकता नहीं है क्योंकि ये लटकते बिट सामान्य हैं और पहले से ही समझे हुए हैं। उन्हें संभालो?