गिट रिवर्ट कमांड एक कमिट को पूर्ववत कर देगा ताकि आप एक रिपॉजिटरी को पिछली कमिट में वापस कर सकें। कमिट को हटाने के बजाय, रिवर्ट एक नई कमिट बनाएगा जो एक प्रकाशित कमिट के परिवर्तनों को उलट देगा। यह परियोजना के इतिहास के एक भाग के रूप में प्रारंभिक प्रतिबद्धता को सुरक्षित रखता है।
जब आप Git रिपॉजिटरी के साथ काम कर रहे होते हैं, तो आप गलती से कोड के साथ एक कमिट बना सकते हैं जो आपके Git रिपॉजिटरी में स्टोर होने के लिए तैयार नहीं है।
यहीं पर git रिवर्ट कमांड आती है। git रिवर्ट कमांड आपको undo
करने की अनुमति देता है एक कमिट ताकि आप एक रिपॉजिटरी को पिछली कमिट में वापस कर सकें।
यह ट्यूटोरियल उदाहरणों के साथ, रिवर्टिंग कोड और अपने कोड को वापस करने के लिए git रिवर्ट कमांड का उपयोग करने के तरीके पर चर्चा करेगा। इस ट्यूटोरियल को पढ़ने के अंत तक, आप git रिवर्ट कमिट कमांड का उपयोग करके कोड को वापस करने के विशेषज्ञ होंगे।
अपना कोड वापस लाना
कभी-कभी, जब आप Git रिपॉजिटरी के साथ काम कर रहे होते हैं, तो आप देख सकते हैं कि आपने अपनी प्रतिबद्धता में गलती की है।
उदाहरण के लिए, मान लीजिए कि आपने अभी-अभी एक नई सुविधा पर काम करना समाप्त किया है, और आपने महसूस किया है कि एक बग है जिसे ठीक करने की आवश्यकता है। जब आप बग फिक्स करते हैं, तो आप यह भी देखते हैं कि आपने जो नई सुविधा विकसित कर रहे हैं, उसके लिए आपने कार्यशील निर्देशिका को प्रतिबद्ध किया है।
इसका मतलब है कि आपकी प्रतिबद्धता में बग फिक्स और एक नई सुविधा दोनों शामिल हैं, जो किसी प्रोजेक्ट पर अन्य सहयोगियों को समझने में भ्रमित हो सकती है। इन दोनों परिवर्तनों को एक ही समय में करने के बजाय, आप उन्हें दो अलग-अलग प्रतिबद्धताओं में शामिल करना चाहते थे।
इस परिदृश्य में, आप अपनी रिपॉजिटरी को उस स्थिति में वापस लाना चाह सकते हैं, जिसमें आपने कमिट को पुश करने से पहले किया था। यह आपको अंतिम कमिट को वापस करके अपने कमिट्स को git में धकेलने का एक और मौका देगा।
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
गिट रिवर्ट कमांड
git रिवर्ट कमांड आपको undo
. की अनुमति देता है एक प्रतिबद्ध। हालाँकि, किसी प्रोजेक्ट से कमिट को हटाने के बजाय, git रिवर्ट कमांड पिछले दो कमिट्स के बीच के बदलावों को ढूंढता है और एक नया कमिट बनाता है जो उन बदलावों को उलट देता है।
git रिवर्ट कमांड उपयोगी है क्योंकि यह आपको रिपॉजिटरी के प्रोजेक्ट इतिहास को संरक्षित करने की अनुमति देता है। किसी कमिट को पूरी तरह से हटाने के बजाय, यह आपको एक रिपॉजिटरी को दूसरी कमिट में वापस लाने की अनुमति देता है, इसलिए आप अभी भी हर कमिट का सटीक रिकॉर्ड रख सकते हैं जिसे आपने रिपोजिटरी में धकेला है।
आपको उन परिस्थितियों में git रिवर्ट कमांड का उपयोग करना चाहिए जहां आप अपनी अंतिम प्रतिबद्धता को उलटना चाहते हैं। अपने अंतिम कमिट में मैन्युअल रूप से बदलाव करने के बजाय, आप अपनी कमिटमेंट को वापस ला सकते हैं और एक नए को कोडबेस पर पुश कर सकते हैं।
git रिवर्ट कमांड का सिंटैक्स इस प्रकार है:
गिट रिवर्ट
आइए एक उदाहरण के माध्यम से यह बताएं कि यह आदेश कैसे काम करता है।
गिट रिवर्ट उदाहरण
हमारी स्थानीय मशीन पर, हमारे पास एक फ़ाइल के साथ एक उदाहरण भंडार है:README.md। हमने अभी-अभी उस फ़ाइल में बदलाव किया है जिसे हम कमिट करने के लिए पुश करना चाहते हैं। हम इस कोड का उपयोग करके ऐसा कर सकते हैं:
git कमिट -m "डॉक्स:लेखक की जानकारी के साथ README.md अपडेट करें"
यह आदेश, जब क्रियान्वित किया जाता है, तो docs: Update README.md with author info
संदेश के साथ एक कमिट बनाता है . हमने अपनी README.md फ़ाइल में एक और बदलाव किया है, जिसे हम इस कमांड का उपयोग करके अपने रेपो के लिए प्रतिबद्ध करते हैं:
git कमिट -m "डॉक्स:योगदान के आधार पर लेखकों का अपडेट ऑर्डर"
यह आदेश हमारे भंडार में एक और प्रतिबद्धता बनाता है। यदि हम git log –pretty=oneline कमांड का उपयोग करते हैं (जो हमें हमारे कमिट की एक छोटी सूची दिखाता है), तो हम देख सकते हैं कि हमारे रेपो इतिहास में दो कमिट हैं:
6f52d877873e7d3b52c929647384dfdf2488da22 (HEAD -> मास्टर) डॉक्स:कंट्रीब्यूशन द्वारा लेखकों का अपडेट ऑर्डर57d763663e619088159bb7629243456f88feab79 डॉक्स:लेखक की जानकारी के साथ README.md अपडेट करें
अब, मान लीजिए कि हम तय करते हैं कि हम अपनी आखिरी प्रतिबद्धता वापस करना चाहते हैं। हमें पता चलता है कि जिस क्रम में हमने अपनी README.md फ़ाइल में लेखकों को लिखा था, वह गलत था, और इसलिए हमें अपनी रिपॉजिटरी को वापस उसी स्थिति में वापस लाने की आवश्यकता है, जिसमें हम अपनी अंतिम प्रतिबद्धता को आगे बढ़ाने से पहले थे।
हम इस आदेश का उपयोग करके ऐसा कर सकते हैं:
गिट रिवर्ट हेड
जब हम इस कमांड को चलाते हैं, तो हमारा डिफ़ॉल्ट टेक्स्ट एडिटर खुलता है और हमें अपनी प्रतिबद्धता के लिए एक संदेश बनाने के लिए प्रेरित करता है। इस कमांड में, HEAD नवीनतम कमिट को संदर्भित करता है। हमारे उदाहरण में, हम revert author order commit
संदेश टाइप करते हैं . फिर, कमांड निम्नलिखित लौटाता है:
[मास्टर b66c29a] लेखक के आदेश को वापस लाएं "दस्तावेज़:योगदान के आधार पर लेखकों का आदेश अपडेट करें" 1 फ़ाइल बदली गई, 1 हटाई गई (-)
अब, जब हम git log –pretty=oneline कमांड चलाते हैं, तो हम देख सकते हैं कि एक नया कमिट बनाया गया है:
b66c29a8c4c226fa9ae8cd8f9e086c0a73e6ecfe (HEAD -> मास्टर) रिवर्ट ऑथर ऑर्डर कमिट "डॉक्स:अपडेट ऑर्डर ऑफ ऑथर बाय कंट्रीब्यूशन" 6f52d877873e7d3b52c929647384df2488da22 डॉक्स:लेखक के अपडेट ऑर्डर को अपडेट करें।हमारा प्रतिबद्ध इतिहास अब तीन प्रतिबद्धताओं को सूचीबद्ध करता है। हमारे अंतिम कमिट को हटाने के बजाय, git रिवर्ट कमांड ने एक नई कमिट बनाई जिसने पिछली कमिट के परिवर्तनों को पूर्ववत कर दिया है। इसका मतलब यह है कि हमारे पास अभी भी उन सभी प्रतिबद्धताओं का पूरा इतिहास है जिन्हें हमने अपने भंडार में धकेला है।
गिट रिवर्ट कमांड को निष्पादित करने के लिए एक प्रतिबद्ध संदर्भ की आवश्यकता होती है। इस मामले में, हमने HEAD निर्दिष्ट किया है, जो हमारे भंडार को अंतिम प्रतिबद्धता में बदल देता है।
यदि हम किसी अन्य कमिट पर वापस लौटना चाहते हैं, तो हम उस कमिट के लिए हैश मान निर्दिष्ट कर सकते हैं। तो,
HEAD
stating बताने के बजाय हमारे आदेश में, हम अपने चयन की प्रतिबद्धता पर वापस जाने के लिए git log कमांड द्वारा लौटाए गए हैश का उपयोग कर सकते हैं। यहाँ एक उदाहरण है जिस कमांड का उपयोग हम किसी रिपॉजिटरी को एक विशिष्ट कमिट में वापस लाने के लिए करेंगे:गिट रिवर्ट 57d763663e619088159bb7629243456f88feab79यह आदेश हमारे भंडार को SHA हैश
57d763663e619088159bb7629243456f88feab79
के साथ कमिट में वापस कर देगा . इस भंडार में, वह हैश हमारे रेपो में किए गए पहले प्रतिबद्धता से मेल खाता है।गिट रिवर्ट बनाम रीसेट
रिवर्ट और रीसेट कमांड दोनों का उपयोग गिट रिपॉजिटरी में पहले के कमिट से किए गए परिवर्तनों को पूर्ववत करने के लिए किया जाता है। हालांकि, आपको पता होना चाहिए कि इन आदेशों का व्यवहार थोड़ा अलग होता है।
पिछले कमिट को पूर्ववत करने के लिए git रिवर्ट कमांड लाइन ऑपरेशन का उपयोग किया जाता है। जब आप git रिवर्ट चलाते हैं, तो दो कमिट के बीच के बदलाव पूर्ववत हो जाते हैं। फिर, एक नया कमिट बनाया जाता है जिसमें परिवर्तनों को पूर्ववत करने के बाद आपके रेपो में कोड होता है।
दूसरी ओर, git reset कमांड एक निश्चित सीमा के बीच सभी कमिट को हटाकर एक रिपॉजिटरी को उसकी पिछली स्थिति में वापस कर देता है। इसलिए, यदि आप गिट रीसेट चलाते हैं और पिछली प्रतिबद्धता का संदर्भ देते हैं, तो भंडार की वर्तमान स्थिति के बीच सभी प्रतिबद्धताएं हटा दी जाएंगी।
किसी कमिट को रीसेट करने पर अक्सर कमिट को वापस करना पसंद किया जाता है। मुख्य कारण यह है कि गिट रिवर्ट आपके प्रोजेक्ट के इतिहास को नहीं बदलता है। यह आपको, डेवलपर को, किसी प्रोजेक्ट में किए गए सभी परिवर्तनों का सटीक रिकॉर्ड बनाए रखने की अनुमति देता है।
इसके अलावा, गिट रिवर्ट कमांड आपको अपने भंडार के इतिहास में एक निश्चित बिंदु पर एक व्यक्तिगत प्रतिबद्धता पर वापस जाने की अनुमति देता है। दूसरी ओर, git रीसेट कमांड केवल उस कमिट से वापस काम करता है जिस पर आप वर्तमान में हैं।
इसका मतलब यह है कि, यदि आप अपने भंडार के इतिहास में एक प्रतिबद्धता को पूर्ववत करना चाहते हैं, तो आपको उस बिंदु से पहले सभी प्रतिबद्धताओं को हटाना होगा, फिर अपने परिवर्तन करना होगा। इससे आपके भंडार के इतिहास के सटीक रिकॉर्ड को संरक्षित करना मुश्किल हो जाता है, जो कि Git जैसे स्रोत नियंत्रण टूल का प्रभावी ढंग से उपयोग करने का एक महत्वपूर्ण हिस्सा है।
निष्कर्ष
गिट रिवर्ट कमांड आपको एक विशिष्ट प्रतिबद्धता के बाद से कोड रिपोजिटरी में किए गए परिवर्तनों को पूर्ववत करने की अनुमति देता है। किसी कमिट को हटाने के बजाय, git रिवर्ट कमांड मौजूदा कमिट और पिछली कमिट के बीच के बदलावों की पहचान करता है और उन बदलावों को वापस लाने के लिए एक नई कमिट बनाता है।
इस ट्यूटोरियल ने चर्चा की कि गिट में एक प्रतिबद्धता को वापस करने के लिए गिट रिवर्ट कमांड का उपयोग कैसे करें। अब आप एक पेशेवर डेवलपर की तरह git रिवर्ट कमिट कमांड का उपयोग करके कमिट्स को वापस करना शुरू करने के लिए तैयार हैं!