Git में डिलीट हुई फ़ाइल को कैसे पुनर्स्थापित करें
सही आदेश एक बात पर निर्भर करता है: विलोपन कितनी दूर तक हुआ। यहां तीन मामले हैं, उस कमिट को कैसे ढूंढें जिसने फ़ाइल को हटा दिया है, और Git क्या वापस नहीं ला सकता है।
द्वारा लिखित Kodmora
GitTree के पीछे सॉफ्टवेयर हाउस
- पूर्ववत करें और पुनर्प्राप्त करें
- इतिहास कमिट करें
इस पेज पर
किसी हटाई गई फ़ाइल को पुनर्स्थापित करने के लिए, जिसे आपने अभी तक कमिट नहीं किया है, `git restore path/to/file` चलाएँ। यदि विलोपन पहले से ही किसी कमिट में है, तो उस कमिट को git log --diff-filter=D -- path/to/file से खोजें, फिर git restore --source=<commit>^ -- path/to/file चलाएँ। Git एक बार संग्रहीत किसी भी चीज़ को वापस ला सकता है, इसलिए जो फ़ाइल कमिट थी वह लगभग हमेशा पुनर्प्राप्त करने योग्य होती है।
| क्या हुआ? | आदेश |
|---|---|
| हटाया गया, स्टेजिंग नहीं किया गया | git restore path/to/file |
| हटाया गया और चरणबद्ध किया गया | git restore --staged --worktree path/to/file |
| कमिट में हटा दिया गया | git restore --source=<commit>^ -- path/to/file |
मैं उस फ़ाइल को कैसे पुनर्स्थापित करूँ जिसे मैंने अभी-अभी हटाया है?
यदि git status फ़ाइल को "कमिट के लिए चरणबद्ध नहीं किए गए परिवर्तन" के अंतर्गत सूचीबद्ध करता है, तो उसे अनुक्रमणिका से वापस कॉपी करें:
git restore src/app.tsमैं git rm के बाद किसी फ़ाइल को कैसे पुनर्स्थापित करूँ?
git rm फ़ाइल को हटाता है और विलोपन को चरणबद्ध करता है, इसलिए यह "परिवर्तन किए जाने वाले परिवर्तन" के अंतर्गत दिखाई देता है। इंडेक्स और वर्किंग फोल्डर दोनों को HEAD से पुनर्स्थापित करें:
git restore --staged --worktree src/app.tsमैं पिछली कमिट में हटाई गई फ़ाइल को कैसे पुनर्स्थापित करूं?
सबसे पहले उस कमिट को ढूंढें जिसने इसे हटाया है। --diff-filter=D केवल विलोपन दिखाता है:
git log --oneline --diff-filter=D -- src/app.tsउस कमिट के पास अब फ़ाइल नहीं है, लेकिन उसके पैरेंट के पास है। ^ का अर्थ है "के जनक", इसलिए यह हटाए जाने से पहले अंतिम संस्करण को पुनर्स्थापित करता है:
git restore --source=4f2a9c1^ -- src/app.tsफ़ाइल एक नए परिवर्तन के रूप में आपके कार्यशील फ़ोल्डर में वापस आती है। इसकी समीक्षा करें, फिर चरणबद्ध करें और किसी भी अन्य संपादन की तरह इसे कमिट करें। 2.23 से पुराने Git पर, git checkout 4f2a9c1^ -- src/app.ts वही कार्य करता है और फ़ाइल को चरणबद्ध भी करता है।
यदि मुझे पूरा रास्ता याद नहीं है तो क्या होगा?
फ़ाइल नाम के लिए प्रत्येक शाखा खोजें. उद्धरण रखें, ताकि Git आपके शेल के बजाय पैटर्न का विस्तार करे:
git log --all --diff-filter=D --name-only --oneline -- "**/app.ts"Git क्या वापस नहीं ला सकता?
- एक फ़ाइल जिसे कभी स्टेज या कमिट नहीं किया गया था। Git ने इसे कभी संग्रहीत नहीं किया। अपने संपादक का स्थानीय इतिहास या अपने सिस्टम बैकअप की जाँच करें।
- फ़ाइलें `git clean` द्वारा हटा दी गईं। उन्हें ट्रैक नहीं किया गया था, इसलिए Git कोई प्रतिलिपि नहीं रखता है।
- अस्थिर संपादनों को `git restore` से बदल दिया गया है। कमांड उन्हें अधिलेखित कर देता है, इसलिए इसे केवल तभी चलाएं जब आप ऐसा करना चाहते हों।
एक फ़ाइल जिसे एक बार चरणबद्ध किया गया था और फिर खो दिया गया था, उसे कभी-कभी git fsck --lost-found के साथ पाया जा सकता है, जो उन ब्लॉब्स को सूचीबद्ध करता है जिन पर कुछ भी इंगित नहीं होता है। रीसेट, रीबेस या कमिट को पूर्ववत करना पर पोस्ट खोए हुए कमिट को कवर करता है, फ़ाइल इतिहास और blame पर पाठ दिखाता है कि किसी फ़ाइल को समय के साथ कैसे फॉलो किया जाए, और डिस्कार्डिंग और क्लीनिंग की मार्गदर्शिका बताती है कि GitTree पहले क्या बचाता है।
किसी फ़ाइल को GitTree में वापस कैसे प्राप्त करें
पहले पूर्ववत दबाएँ
यदि GitTree ने फ़ाइल को त्याग दिया है या साफ़ कर दिया है, तो टूलबार में पूर्ववत करें दबाएँ। यह कुछ भी हटाने से पहले
refs/ogt/trashके अंतर्गत एक पुनर्प्राप्ति स्नैपशॉट सहेजता है।इतिहास खोजें
फ़ाइल को छूने वाले कमिट को खोजने के लिए कमिट ग्राफ़ खोज का उपयोग करें, फिर उसके संस्करण को पढ़ने के लिए उस कमिट को खोलें।
खोई हुई कमिटों के लिए खोया और पाया का उपयोग करें
उन कमिटों को देखने के लिए टूल्स → खोया और पाया चुनें जिनकी ओर अब कोई शाखा इंगित नहीं करती।

अक्सर पूछे जाने वाले प्रश्न
गिट रिस्टोर और गिट चेकआउट के बीच क्या अंतर है?
Git 2.23 में एक काम करने के लिए git restore जोड़ा गया: फ़ाइलों को पुनर्स्थापित करें। git checkout शाखाएँ भी बदलता है, जिससे इसका दुरुपयोग करना आसान हो जाता है।
जब कोई फ़ाइल हटा दी गई तो मैं कैसे देखूं?
git log --diff-filter=D -- path/to/file चलाएँ. इसमें उस कमिट को सूचीबद्ध किया गया है जिसने इसे हटाया है, इसके लेखक और तारीख के साथ।
गिट रिस्टोर यह क्यों कहता है कि पाथस्पेक मेल नहीं खाता?
आपके द्वारा चुने गए स्रोत पर Git उस पथ को नहीं जानता है। यदि फ़ाइल को किसी कमिट में हटा दिया गया था, तो उसे उस कमिट के पैरेंट से --source=<commit>^ के साथ पुनर्स्थापित करें।
क्या मैं हटाए गए फ़ोल्डर को पुनर्स्थापित कर सकता हूँ?
हाँ। फ़ाइल के बजाय फ़ोल्डर पथ पास करें, उदाहरण के लिए git restore --source=<commit>^ -- src/utils.
क्या पुनर्स्थापित फ़ाइल स्वचालित रूप से कमिट है?
नहीं, यह आपके कार्यशील फ़ोल्डर में परिवर्तन के रूप में दिखाई देता है। जब आप तैयार हों तो चरणबद्ध करें और इसे कमिट करें।
सूत्र
अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 7 नवंबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।