गिट पुल कमांड आपको किसी प्रोजेक्ट में किए गए परिवर्तनों को रिमोट रिपोजिटरी से पुनर्प्राप्त करने देता है और उन परिवर्तनों को आपकी स्थानीय मशीन पर डाउनलोड करने देता है। इस ऑपरेशन को git reset कमांड का उपयोग करके पूर्ववत किया जा सकता है। रीसेट कमांड किसी रिपॉजिटरी को उसके इतिहास के पिछले बिंदु पर वापस लाता है।
यह मार्गदर्शिका चर्चा करती है कि गिट पुल ऑपरेशन को पूर्ववत करने के लिए गिट रीसेट कमांड का उपयोग कैसे करें। यह इस आदेश का उपयोग करने का तरीका सीखने में आपकी सहायता करने के लिए एक उदाहरण के माध्यम से चलता है।
गिट पुल:एक ब्रेकडाउन
गिट पुल कमांड आपके स्थानीय भंडार को अपने दूरस्थ समकक्ष के साथ अद्यतित करता है।
जब आप गिट पुल कमांड चलाते हैं, तो गिट जांच करेगा कि गिट फ़ेच कमांड चलाकर रिमोट रिपोजिटरी में कोई बदलाव किया गया है या नहीं। फिर, यदि परिवर्तन किए गए हैं, तो फ़ेच कमांड उन परिवर्तनों के लिए मेटाडेटा पुनर्प्राप्त करेगा।
इसके बाद, गिट पुल कमांड गिट मर्ज चलाता है। यह प्रक्रिया आपके स्थानीय मशीन पर git fetch कमांड द्वारा खोजे गए किसी भी परिवर्तन को मर्ज कर देती है। इसका मतलब है कि जब आप git pull चलाते हैं तो आपके रिपॉजिटरी के स्थानीय संस्करण को रिमोट रिपोजिटरी से मिलान करने के लिए बदल दिया जाएगा।
गिट पुल को पूर्ववत करें
गिट पुल कमांड को स्पष्ट रूप से पूर्ववत करने के लिए कोई आदेश नहीं है। विकल्प गिट रीसेट का उपयोग करना है, जो एक रिपोजिटरी को पिछली प्रतिबद्धता में वापस लाता है।
हम सीके-गिट नामक एक परियोजना पर काम कर रहे हैं। एक सहयोगी ने प्रोजेक्ट के दूरस्थ संस्करण के लिए एक प्रतिबद्धता को धक्का दिया है जो गिटहब पर संग्रहीत है। हम इन परिवर्तनों को पुनः प्राप्त करना चाहते हैं।
इन परिवर्तनों को पुनः प्राप्त करने के लिए, हम git pull कमांड का उपयोग करने जा रहे हैं:
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
git pull
यह आदेश एक संदेश देता है जो हमें सूचित करता है कि उसने मेटाडेटा खींच लिया है और रिमोट रिपोजिटरी से हमारे स्थानीय मशीन में परिवर्तन डाउनलोड किया है:
remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From https://github.com/career-karma-tutorials/ck-git 77e7fc0..a8336fa master -> origin/master Updating 77e7fc0..a8336fa Fast-forward README.md | 1 + 1 file changed, 1 insertion(+)
मास्टर शाखा में बदली गई एकमात्र फाइल README.md है। इस फ़ाइल में पाठ की एक अतिरिक्त पंक्ति है जो पिछली प्रतिबद्धता में मौजूद नहीं थी।
अब, मान लें कि हम इस ऑपरेशन को पूर्ववत करना चाहते हैं। हम इस परिवर्तन को अपने स्थानीय भंडार में स्वीकार करने के लिए तैयार नहीं हैं। ऑपरेशन को पूर्ववत करने के लिए, हमें गिट रीसेट चलाने की जरूरत है।
गिट रीसेट कमांड चलाने से पहले, आपको पता होना चाहिए कि यह कमांड आपके द्वारा रिपोजिटरी में किए गए किसी भी असामान्य परिवर्तन को हटा देगा। रीसेट कमांड चलाने से पहले सुनिश्चित करें कि आपने कोई भी परिवर्तन किया है जिसे आप सहेजना चाहते हैं।
चलो Git में अंतिम कमिट में रिपॉजिटरी की पिछली स्थिति में वापस जाने के लिए git रीसेट कमांड चलाते हैं:
git reset 77e7fc0 --hard
यह आदेश अंतिम प्रतिबद्धता पर हमारे भंडार को उसके राज्य में वापस कर देता है:
Unstaged changes after reset: M README.md
-हार्ड फ्लैग गिट को बताता है कि हम एक विशेष प्रतिबद्धता पर कोड की सामग्री के साथ अपनी कार्यशील निर्देशिका को बदलना चाहते हैं।
वैकल्पिक रूप से, हम यह निर्दिष्ट करने के लिए HEAD कथन का उपयोग कर सकते थे कि हम किस प्रतिबद्धता पर वापस लौटना चाहते हैं:
git reset HEAD~1 --hard
यह कथन हमारे भंडार को एक प्रतिबद्धता वापस ले जाता है। हम आगे के कामों में वापस जाने के लिए नंबर 1 को बदल सकते हैं।
हमारी README.md फ़ाइल अब उस स्थिति में है, जिसमें वह अंतिम प्रतिबद्धता के दौरान थी। यदि आपने गिट पुल कमांड चलाने से पहले फ़ाइल में कोई बदलाव किया है जो प्रतिबद्ध नहीं थे, तो वे परिवर्तन अप्राप्य होंगे। ऐसा इसलिए है क्योंकि git केवल किए गए परिवर्तनों को सहेजता है।
निष्कर्ष
गिट पुल ऑपरेशन को पूर्ववत करने के लिए आप गिट रीसेट कमांड का उपयोग कर सकते हैं। git reset कमांड आपके रिपॉजिटरी को उसके इतिहास के किसी विशेष बिंदु पर रीसेट करता है। यदि आपने git pull चलाने से पहले फ़ाइलों में परिवर्तन किए हैं जो आपने नहीं किए हैं, तो वे परिवर्तन समाप्त हो जाएंगे।
गिट रीसेट कमांड चलाने से पहले, सुनिश्चित करें कि आपने कोई बदलाव किया है। git reset कमांड के कारण आप किसी भी अनकम्फर्टेबल बदलाव को खो देंगे।
अब आपके पास एक समर्थक की तरह git pull कमांड को पूर्ववत करने के लिए आवश्यक ज्ञान है!