गलतियाँ सुधारना: restore, reset, revert — सही और खतरनाक तरीके
इंटरव्यू और वास्तविक काम में सबसे अधिक पूछा जाने वाला विषय है—पहले से किए गए कार्यों को कैसे पूर्ववत करें। हम तीन अलग-अलग 'गहराई' वाले उपकरणों का विश्लेषण करेंगे और सबसे महत्वपूर्ण पर ध्यान केंद्रित करेंगे: विशिष्ट परिदृश्य दिखाएँगे जहाँ reset --hard टीम के काम को नष्ट कर देता है, और revert एक सुरक्षित विकल्प है। अच्छे और बुरे निर्णय—वास्तविक परिणामों के साथ।
- आप किसी भी चरण में परिवर्तनों को आत्मविश्वास से पूर्ववत कर पाएंगे: कार्यशील निर्देशिका में, इंडेक्स में और कमिट इतिहास में।
- आप reset और revert के बीच मूलभूत अंतर समझ जाएंगे और जानेंगे कि किन परिस्थितियों में कौन सा उपयुक्त है।
- आप सामान्य गलतियों से बचना सीखेंगे जो नए लोग सामूहिक रिपॉजिटरी में परिवर्तन पूर्ववत करते समय करते हैं।
จุดเริ่มต้นของบทเรียน
Git restore: फ़ाइलों के लिए रद्द करने का बटन
- Git restore — अनकमिटेड परिवर्तनों को रद्द करना
- यह एडिटर में 'रद्द करें' बटन की तरह काम करता है
- सुरक्षित — यह कमिट इतिहास नहीं बदलता
- फ़ाइलों को अंतिम सहेजी गई स्थिति में लौटाता है
मान लीजिए कि आपने गलती से एक फ़ाइल को त्रुटि के साथ सेव कर लिया और सब कुछ पहले जैसा वापस चाहते हैं। Git restore एक जादुई रद्द करने वाले बटन की तरह काम करता है — यह फ़ाइलों को अंतिम कमिट की गई स्थिति में लौटा देता है। अन्य रद्द करने वाले कमांडों के विपरीत, restore केवल अनकमिटेड परिवर्तनों पर काम करता है और आपके प्रोजेक्ट के इतिहास के लिए पूरी तरह से सुरक्षित है। यह पहला उपकरण है जिसका उपयोग आकस्मिक संपादनों पर करना चाहिए, जब परिवर्तनों के इतिहास को जोखिम में डाले बिना जल्दी से स्थिति को ठीक करना हो।
कार्य निर्देशिका में परिवर्तन रद्द करना
- git restore file.txt — फ़ाइल को अंतिम कमिट पर लौटाएँ
- कार्य निर्देशिका में सभी परिवर्तन रद्द करता है
- सुरक्षित — एडिटर के माध्यम से परिवर्तन वापस लाए जा सकते हैं
- पुनर्स्थापना से पहले git status से स्थिति जाँचें
मान लीजिए कि आप आधे घंटे से कॉन्फ़िगरेशन फ़ाइल को संपादित कर रहे थे, लेकिन आपको लगा कि आप गलत दिशा में जा रहे हैं। हर बदलाव को मैन्युअल रूप से वापस लाने के बजाय, git restore config.yml चलाएँ। फ़ाइल तुरंत अंतिम कमिट की स्थिति में वापस आ जाएगी। यह ऐसा है जैसे आपने फ़ाइल को बिना सेव किए बंद कर दिया, लेकिन इस गारंटी के साथ कि आप एक कार्यशील संस्करण पर लौट रहे हैं।
# फ़ाइल पुनर्स्थापना का प्रदर्शन
$ echo "गलत संशोधन" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
फ़ाइल को इंडेक्स से हटाना
- git restore --staged file.txt — फ़ाइल को इंडेक्स से हटाएँ
- कार्य निर्देशिका में परिवर्तन सुरक्षित रखता है
- सावधानी: --staged के बिना परिवर्तन खो जाएँगे
- निष्पादन से पहले हमेशा git status जाँचें
एक सामान्य गलती है गलती से इंडेक्स में एक अतिरिक्त फ़ाइल जोड़ देना। उदाहरण के लिए, आपने git add . चलाया और उसमें एक अस्थायी सेटिंग फ़ाइल आ गई। कमांड git restore --staged settings.tmp फ़ाइल को इंडेक्स से हटा देगा लेकिन कार्य निर्देशिका में सभी परिवर्तनों को सुरक्षित रखेगा। --staged फ़्लैग के बिना आप अपना काम खो देंगे, इसलिए restore चलाने से पहले हमेशा git status से जाँच करें। अब आप कमिट से पहले परिवर्तनों को रद्द करना जानते हैं। लेकिन क्या होगा यदि त्रुटि पहले ही इतिहास में आ गई है? तब git reset काम आता है।
# गलती से फ़ाइल को इंडेक्स में जोड़ दिया
$ git add config.tmp
$ git status
# इंडेक्स से हटाएँ, परिवर्तन सुरक्षित रखें
$ git restore --staged config.tmp
$ git status
# जाँचें कि फ़ाइल कार्य निर्देशिका में है
$ ls -la config.tmp
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 24 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- Git restore: फ़ाइलों के लिए रद्द करने का बटन
- कार्य निर्देशिका में परिवर्तन रद्द करना
- फ़ाइल को इंडेक्स से हटाना
- Git reset: इतिहास को रिवाइंड कैसे करें
- सुरक्षित reset --soft: इंडेक्स में परिवर्तन
- सामान्य reset --mixed: कार्य निर्देशिका में परिवर्तन
- खतरनाक reset --hard: स्थायी रूप से हटाना
- Reset: तीन मोड, एक कमांड
- git reset --soft: इतिहास को सुरक्षित रूप से फिर से लिखना
- कब --mixed और --hard का उपयोग करें
- चेकलिस्ट: कौन सा reset चुनें?
- गलती को सिर्फ मिटा क्यों नहीं सकते?
- git revert व्यवहार में कैसे काम करता है
- एक साथ कई कमिट वापस लेना
- Reset: स्थानीय रूप से इतिहास फिर से लिखना
- Revert: बदलावों को सुरक्षित रूप से रद्द करना
- push करने पर क्या होगा: reset vs revert
- reset --hard खतरनाक क्यों है
- बदलाव खोने का उदाहरण
- डेटा कैसे पुनर्स्थापित करें
- साझा ब्रांच में रीसेट के खतरे
- Revert का उपयोग कर सुरक्षित रोलबैक
- क्रियाओं का सही क्रम
- कब क्या उपयोग करें: restore, reset या revert
- व्यक्तिगत और साझा इतिहास के साथ काम करने के नियम
- त्रुटि होने पर चरण-दर-चरण निर्देश
- निष्कर्ष और असाइनमेंट: वापसी का स्वामी
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git checkout, switch และ restore: ควรใช้อะไรเมื่อไร
- git reset กับ git revert: วิธียกเลิกคอมมิตโดยไม่ทำลายประวัติของทีม
- git reflog: วิธีกู้คอมมิตและบรานช์ที่หายไป
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
บทเรียนทั้งหมดในคอร์สนี้
- परिचय: शुरुआत से आत्मविश्वासी डेवलपर तक Git
- गिट की आवश्यकता क्यों है — और इसके बिना नौकरी क्यों नहीं मिलती
- Git की स्थापना और प्रारंभिक सेटअप: पहली बार चलाने की तैयारी
- पहला रिपॉजिटरी: git init, git add, git commit और इंडेक्स का जादू
- इतिहास पढ़ना: log, diff, show और पिछले बदलावों में नेविगेशन
- शाखाएँ: आपके कोड की समानांतर दुनिया
- गलतियाँ सुधारना: restore, reset, revert — सही और खतरनाक तरीके
- GitHub और दूरस्थ भंडार: आपका कोड क्लाउड में
- टीम वर्क: फ़ोर्क, फ़ीचर ब्रांच और पुल रिक्वेस्ट
- मर्ज संघर्ष: घबराएं नहीं — समझें और हल करें
- वास्तविक टीमों में Git प्रक्रियाएँ: कौन सा वर्कफ़्लो चुनें
- उन्नत उपकरण: rebase, stash, cherry-pick और टैग
- अंतिम प्रोजेक्ट: वास्तविक टीम डेवलपमेंट का अनुकरण