संपादित 3 महीने पहले द्वारा ExtremeHow संपादकीय टीम
गिटरोलबैकवापस लौटनाविंडोमैकलिनक्सकमांड लाइनस्रोत नियंत्रणसंस्करण नियंत्रणसमस्या निवारणविकास
अनुवाद अपडेट किया गया 3 महीने पहले
आज की दुनिया में, सॉफ़्टवेयर विकास अक्सर कई लोगों को एक ही कोडबेस पर एक साथ काम करने की आवश्यकता होती है। इस सहयोग को प्रभावी ढंग से प्रबंधित करने के लिए, डेवलपर्स Git जैसी संस्करण नियंत्रण प्रणाली का उपयोग करते हैं। Git एक शक्तिशाली और व्यापक रूप से प्रयुक्त संस्करण नियंत्रण प्रणाली है जो डेवलपर्स को उनके कोड में परिवर्तन ट्रैक करने, दूसरों के साथ काम करने और उनके परियोजनाओं के विभिन्न संस्करणों का प्रबंधन करने में मदद करता है। डेवलपर्स को जो सबसे महत्वपूर्ण कार्य अक्सर करने की आवश्यकता होती है, वह है परिवर्तनों को वापस लौटाना। Git में परिवर्तन वापस लौटाना उस कोड में किए गए परिवर्तनों को पूर्ववत् करना या उलटना है, जब कुछ गलत हो जाए या जब मूल परिवर्तन की अब आवश्यकता न हो।
Git में परिवर्तन वापस लौटाने के विशेषताओं में जाने से पहले, यह समझना महत्वपूर्ण है कि Git क्या है और यह क्यों महत्वपूर्ण है। Git एक ओपन-सोर्स, वितरित संस्करण नियंत्रण प्रणाली है जिसे लिनुस टॉरवाल्ड्स ने 2005 में बनाया था। यह कई डेवलपर्स को एक परियोजना पर एक साथ काम करने की अनुमति देता है बिना एक-दूसरे के काम को ओवरराइट किए बिना।
Git महत्वपूर्ण है क्योंकि यह कोड में किए गए हर परिवर्तन को रिकॉर्ड करता है, परियोजना का एक पूरा इतिहास प्रदान करता है। यह इतिहास फायदेमंद है क्योंकि यह डेवलपर्स को परियोजना के पिछले राज्यों को देखने की अनुमति देता है, यह समझने के लिए कि क्या परिवर्तन किए गए थे और किसने उन्हें बनाया। यदि हाल का कोई परिवर्तन एक बग या त्रुटि उत्पन्न करता है, तो Git का इतिहास उन परिवर्तनों की पहचान और उन्हें वापस लौटाना संभव बनाता है।
सॉफ़्टवेयर विकास में, कई परिदृश्य होते हैं जहां आपको Git में परिवर्तनों को वापस लौटाने की आवश्यकता हो सकती है:
git add
का उपयोग करके) और उन्हें अनस्टेज करना चाहते हैं।Git विकास प्रक्रिया के विभिन्न चरणों में परिवर्तन वापस लौटाने के लिए कई आदेश प्रदान करता है। आइए इन आदेशों पर नज़र डालते हैं और समझते हैं कि उनका उपयोग कैसे करें:
git checkout
आदेश का उपयोग शाखाओं को स्विच करने के लिए किया जा सकता है, लेकिन यह आपके कार्यशील डायरेक्टरी में परिवर्तन वापस लौटाने के लिए भी उपयोगी है। यदि आपने किसी फ़ाइल में परिवर्तन किए हैं जिन्हें आप हटाना चाहते हैं, तो आप निम्नलिखित आदेश का उपयोग कर सकते हैं:
git checkout -- <file-name>
यह आदेश निर्दिष्ट फ़ाइल को अंतिम कमिट स्थिति में पुनर्स्थापित करता है। यह तब उपयोगी होता है जब परिवर्तन अवांछित होते हैं या यदि आपने अस्थायी संशोधन किए हैं जिन्हें हटाने की आवश्यकता है।
git revert
आदेश एक नए कमिट का निर्माण करता है जो पहले के कमिट द्वारा किए गए परिवर्तनों को पूर्ववत करता है। यह दृष्टिकोण कुछ अन्य विधियों से सुरक्षा होता है क्योंकि यह मौजूदा कमिट को नहीं हटाता। इसके बजाय, यह निर्दिष्ट कमिट को उलटने वाला एक नया कमिट जोड़ता है।
git revert <commit-hash>
यह आदेश विशेष रूप से तब उपयोगी होता है जब परिवर्तनों को एक साझा भंडार में धकेला गया होता है। एक कमिट को पूर्ववत करना विपरीत परिवर्तनों के साथ एक नया कमिट बनाता है।
git reset
आदेश बहुमुखी है, आपको स्टेजिंग क्षेत्र और/या कार्यशील डायरेक्टरी में परिवर्तन वापस लौटाने की अनुमति देता है। इसका उपयोग यहाँ बताया गया है:
git reset <commit-hash>
यह आदेश वर्तमान शाखा को निर्दिष्ट कमिट पर ले जाता है। डिफ़ॉल्ट रूप से, यह सूचकांक (स्टेजिंग क्षेत्र) और हेड (जहाँ शाखा वर्तमान में इशारा कर रही है) को प्रभावित करता है, लेकिन कार्यशील डायरेक्टरी को नहीं।
git reset HEAD <file-name>
यदि आपने फ़ाइलों को स्टेजिंग क्षेत्र में जोड़ा है और उन्हें अनस्टेज करना चाहते हैं, तो इस आदेश का उपयोग करें। यह कार्यशील डायरेक्टरी में फ़ाइल को रिसेट करता है, उन्हें सूचकांक से हटाता है।
git reset --hard <commit-hash>
यह आदेश न केवल वर्तमान हेड को निर्दिष्ट कमिट पर रिसेट करता है, बल्कि कार्यशील डायरेक्टरी को उस कमिट से मैच करने के लिए अपडेट भी करता है। स्टेजिंग क्षेत्र और कार्यशील डायरेक्टरी में बनाए गए सभी परिवर्तन खो जाते हैं। इस आदेश का ध्यानपूर्वक प्रयोग करें, क्योंकि हार्ड रिसेट को आसानी से पूर्ववत नहीं किया जा सकता।
git clean
आदेश कार्यशील डायरेक्टरी से अनट्रैक्ड फ़ाइलों को हटाने के लिए उपयोग होता है। ये ऐसी फाइलें हैं जिन्हें बनाया या बदला गया है लेकिन अभी तक कमिट नहीं किया गया है।
git clean -f
यह आदेश किसी भी अनट्रैक्ड फाइलों को हटा देगा। यदि आप डायरेक्टरीज़ को भी हटाना चाहते हैं, तो आप उपयोग कर सकते हैं:
git clean -fd
मान लें कि आपने example.txt
नामक फ़ाइल में बदलाव किए और बाद में इन्हें छोड़ने का निर्णय लिया। आप निम्नलिखित आदेश का उपयोग करके अपने परिवर्तनों को पूर्ववत कर सकते हैं:
git checkout -- example.txt
यह आदेश example.txt
को उसकी अंतिम कमिट स्थिति में पुनर्स्थापित कर देगा।
यदि आपने गलती से एक कमिट किया और उसके प्रभावों को पूर्ववत करना चाहते हैं, तो आप git revert
का उपयोग कर सकते हैं। मान लें कि कमिट हैश abc1234
है:
git revert abc1234
यह आदेश एक नया कमिट बनाएगा जो कमिट abc1234
द्वारा किए गए परिवर्तनों को उलट देगा। यह विशेष रूप से तब उपयोगी है जब साझा भंडारों के साथ काम कर रहे हों।
यदि आपने data.csv
नामक फ़ाइल को स्टेज किया है और उसे अनस्टेज करना चाहते हैं, तो उपयोग करें:
git reset HEAD data.csv
यह आदेश data.csv
को स्टेजिंग क्षेत्र से हटा देता है, आपके परिवर्तन कार्यशील डायरेक्टरी में सहेजे रहते हैं।
अपने वर्तमान शाखा को पिछले कमिट में पहचानित हैश def5678
पर रिसेट करने और स्टेजिंग क्षेत्र और कार्यशील डायरेक्टरी से सभी बदलावों को हटाने के लिए उपयोग करें:
git reset --hard def5678
महत्वपूर्ण: सावधान रहें क्योंकि इस दृष्टिकोण से def5678
कमिट के बाद के परिवर्तन स्थायी रूप से हट जाते हैं।
Git में परिवर्तन वापस लौटाना डेवलपर्स के लिए एक महत्वपूर्ण कौशल है। चाहे आपको हाल की कमिट को पूर्ववत करने की आवश्यकता हो, बदलावों को अनस्टेज करना हो, या अपनी फाइलों में संशोधन को उलटने की आवश्यकता हो, Git के पास इस कार्य को संभालने के लिए उचित आदेश हैं। git checkout
, git revert
, git reset
, और git clean
जैसे आदेशों की समझ के साथ, गलतियों और अवांछित परिवर्तनों से निपटना आसान हो जाता है।
इन आदेशों का ध्यानपूर्वक उपयोग करना महत्वपूर्ण है, विशेष रूप से वे जो स्थायी रूप से आपकी कार्यशील डायरेक्टरी या कमिट इतिहास को बदलते हैं। हमेशा विचार करें कि आपके परिदृश्य के लिए एक साधारण पूर्ववत प्रक्रिया काफ़ी है या एक अधिक जटिल परिमार्जन प्रक्रिया की आवश्यकता है।
जैसे-जैसे आप Git से अधिक परिचित होते जाते हैं, आप पाएँगे कि इसके संस्करण प्रबंधन की क्षमताएँ प्रभावित रूप से सहयोग करने के लिए सॉफ़्टवेयर विकास में अनिवार्य उपकरण हैं। परिवर्तन वापस करना Git के कई क्षमताओं में से सिर्फ एक है जो इसे डेवलपर के टूलकिट का एक अनिवार्य हिस्सा बनाते हैं।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं