गिराए गए Git स्टैश, हटाई गई शाखा या खोए हुए कमिट को कैसे पुनर्प्राप्त करें
गिरा हुआ भंडार या हटाई गई शाखा शायद ही कभी हमेशा के लिए चली जाती है: Git कमिट को तब तक बनाए रखता है जब तक कि कचरा संग्रह उन्हें हटा नहीं देता। उन्हें रीफ्लॉग या गिट एफएससीके के साथ ढूंढें, जांचें कि उनके पास क्या है, और बहुत देर होने से पहले उन्हें वापस शाखा पर रख दें।
द्वारा लिखित Kodmora
GitTree के पीछे सॉफ्टवेयर हाउस
- छिपाना
- पूर्ववत करें और पुनर्प्राप्त करें
इस पेज पर
जब आप कोई स्टैश छोड़ते हैं या कोई शाखा हटाते हैं, तो Git नाम हटाता है, कमिट नहीं। कमिट रिपॉजिटरी में अप्राप्य ऑब्जेक्ट के रूप में तब तक रहते हैं जब तक कि कचरा संग्रह उन्हें काट नहीं देता, आमतौर पर दो सप्ताह या उससे अधिक के बाद। रीफ्लॉग में हटाई गई शाखा की अंतिम कमिट को git reflog के साथ ढूंढें, git fsck --unreachable के साथ गिरा हुआ स्टैश ढूंढें, इसे git show के साथ जांचें, फिर इसे git branch rescue <sha> के साथ रखें।
यह मार्गदर्शिका प्रत्येक मामले को सटीक आदेशों के साथ कवर करती है, बताती है कि Git कितने समय तक खोए हुए काम को रखता है और क्या पुनर्प्राप्त नहीं किया जा सकता है, और GitTree के खोया और पाया में समान पुनर्प्राप्ति दिखाता है, जो एक ही बार में हर स्रोत को खोजता है और कभी भी कुछ भी जांच या रीसेट नहीं करता है। खोया और पाया GitTree की निःशुल्क योजना का हिस्सा है। किसी रीसेट, रीबेस या संशोधन को पूर्ववत करने के लिए, इसके बजाय गिट रीसेट, रीबेस और कमिट को पूर्ववत कैसे करें पढ़ें।
जहां "खोया हुआ" Git कार्य वास्तव में रहता है
एक कमिट तब पहुंच योग्य होती है जब कोई शाखा, टैग, स्टैश या HEAD उस तक ले जाता है। किसी शाखा को हटाने या स्टैश को छोड़ने से इसके कमिट अप्राप्य हो जाते हैं, लेकिन वे .git/objects में ही रहते हैं। दो रिकॉर्ड आपको उन्हें ढूंढने में मदद करते हैं: रीफ्लॉग, जहां प्रत्येक शाखा और HEAD ने पहले इंगित किया था, और ऑब्जेक्ट डेटाबेस स्वयं, जिसे git fsck खोज सकता है।
| तुमने क्या खोया | कहाँ देखना है | आदेश |
|---|---|---|
| एक हटाई गई शाखा जिसे आपने चेक आउट किया था | HEAD का रिफ्लॉग | git reflog |
| एक हटाई गई शाखा जिसकी आपने कभी जाँच नहीं की | अगम्य कमिट | git fsck --unreachable |
| गिरा हुआ या साफ किया हुआ भंडार | पहुंच से बाहर मर्ज-आकार की कमिट | git fsck --unreachable | grep commit |
| रीसेट या रीबेस के बाद कमिट खो जाते हैं | शाखा का रिफ्लॉग | git reflog show <branch> |
| परिवर्तन कभी कमिट या छिपाए नहीं गए | गिट में कहीं नहीं | Git से पुनर्प्राप्त नहीं किया जा सकता |
हटाई गई शाखा पुनर्प्राप्त करें
जब आप शाखा को हटाते हैं तो Git उसकी अंतिम कमिट प्रिंट करता है (Deleted branch feature/login (was 3f2a9c1))। यदि वह संदेश चला गया है, तो पिछली बार जब आप शाखा में थे तब HEAD का रीफ्लॉग खोजें, फिर उस कमिट पर शाखा को फिर से बनाएं।
# find the last commit of the branch
git reflog | grep "feature/login"
# check what it holds
git show 3f2a9c1 --stat
# put the branch back
git branch feature/login 3f2a9c1गिरा हुआ भंडार पुनः प्राप्त करें
एक बार गिराए जाने के बाद किसी भंडार का अपना कोई रिफ्लॉग नहीं होता है, इसलिए पहुंच से बाहर की कमिटों को खोजें। स्टैश एक मर्ज-आकार का कमिट है जिसका संदेश WIP on या On <branch>: से शुरू होता है, जिससे फ़िल्टर करना आसान हो जाता है। यह वह विधि है जिसका वर्णन Git के स्वयं के स्टैश दस्तावेज़ में किया गया है।
# list unreachable stash-like commits, newest first
git fsck --unreachable | grep commit | cut -d" " -f3 \
| xargs git log --merges --no-walk --grep=WIP --format="%h %cr %s"
# inspect a candidate
git stash show -p 7c1e0b4
# restore it into your working tree, or keep it on a branch
git stash apply 7c1e0b4
git branch rescue-stash 7c1e0b4git fsck --lost-found के साथ हर लटकते कमिट को खोजें
git fsck --lost-found लटकते हुए कमिटों को सूचीबद्ध करता है और प्रत्येक की एक प्रति उसकी आईडी द्वारा नामित .git/lost-found/commit/ में लिखता है। इसका उपयोग तब करें जब आप नहीं जानते कि आप क्या खोज रहे हैं: उन्हें उनकी तिथियों और संदेशों के साथ सूचीबद्ध करें, फिर जिसे आप चाहते हैं उससे शाखा बनाएं।
git fsck --lost-found
ls .git/lost-found/commit | xargs git log --no-walk --format="%h %cr %s"
git branch rescue 9d44b0eGitTree के लॉस्ट एंड फाउंड के साथ खोया हुआ काम पुनः प्राप्त करें
खोया और पाया खोलें
टूल्स → खोया और पाया चुनें, या
Alt+Shift+Dदबाएँ। यह अपने प्रारंभ पृष्ठ पर एक पूर्ण विंडो के रूप में खुलता है, जो इसके द्वारा खोजे गए तीन स्रोतों की व्याख्या करता है: रीफ्लॉग, GitTree के पुनर्प्राप्ति संदर्भ और पहुंच योग्य वस्तुएं।स्थानीय काम खोजें
गिरी हुई वस्तुओं को भी देखने के लिए पहुंच न सकने वाली वस्तुओं के लिए गहन स्कैन शामिल करें पर निशान लगाएं, फिर स्थानीय कार्य खोजें दबाएँ। पाया गया कार्य प्रत्येक परिणाम को उसके स्रोत और उसे कब देखा गया सहित सूचीबद्ध करता है; कमिट, संदेश या स्रोत के आधार पर फ़िल्टर करें सूची को संक्षिप्त करता है।
रखने से पहले निरीक्षण करें
परिणाम चुनें: यह ऑब्जेक्ट क्यों दिखाई देता है इसके साक्ष्य दिखाता है, इसका संदेश और फ़ाइलें इसके बगल में दिखाई देती हैं, और प्रत्येक फ़ाइल अपनी सामग्री खोलती है। किसी भी चीज़ की जाँच या कार्यान्वयन नहीं किया जाता है।
इसे किसी शाखा पर रखें
इस कमिट को बनाए रखें के अंतर्गत, नई शाखा का नाम टाइप करें और पुनर्प्राप्ति शाखा बनाएं दबाएँ। पुनर्प्राप्त शाखा को सूचीबद्ध करता है; ग्राफ़ में दिखाएँ उस पर कूदता है। आपकी चेकआउट और कार्यशील फ़ाइलें नहीं बदलतीं।

Git कब तक खोए हुए कमिट रखता है
| सेटिंग | डिफ़ॉल्ट | यह क्या नियंत्रित करता है |
|---|---|---|
gc.reflogExpire | 90 दिन | कमिट के लिए प्रविष्टियाँ फिर से लॉग करना अभी भी उपलब्ध है |
gc.reflogExpireUnreachable | 30 दिन | कमिट के लिए प्रविष्टियों को फिर से लॉग करना अब पहुंच योग्य नहीं है |
gc.pruneExpire | 2 सप्ताह | बिना रीफ्लॉग प्रविष्टि वाली पहुंच योग्य वस्तुएं, जैसे गिरा हुआ भंडार |
कचरा संग्रहण कुछ आदेशों के बाद अपने आप चलता है, इसलिए ये विंडोज़ हैं, वादे नहीं। आप जितनी जल्दी देखेंगे, उतना ही अधिक पाएंगे। अन्यत्र कॉपी, जैसे टीम के साथी का क्लोन या पुश की गई शाखा, अन्य सुरक्षा जाल है: केवल आपके कंप्यूटर पर खोया हुआ कार्य केवल वहीं मौजूद होता है।
जिसे पुनः प्राप्त नहीं किया जा सकता
- वे परिवर्तन जो कभी कमिट या छिपाए नहीं गए, जैसे कि संपादन को
git checkout -- <file>याgit restoreके साथ फेंक दिया गया। - अनट्रैक की गई फ़ाइलें जो
-uके साथ बनाए गए भंडार में नहीं थीं। - कमिट है कि कचरा संग्रहण पहले ही कम हो चुका है।
- वह कार्य जो केवल किसी अन्य व्यक्ति के कंप्यूटर पर ही मौजूद था।
अगले चरण: लॉस्ट एंड फाउंड गाइड प्रत्येक पृष्ठ और बटन का दस्तावेजीकरण करता है, पिछली शाखा युक्तियाँ ढूंढें रीफ्लॉग दृश्य को कवर करता है, और गिट स्टैश गाइड लागू, पॉप और अनट्रैक की गई फ़ाइलों की व्याख्या करता है ताकि आपको कम बार पुनर्प्राप्ति की आवश्यकता हो।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं गिरा हुआ गिट स्टैश पुनर्प्राप्त कर सकता हूँ?
आमतौर पर, हाँ. एक गिरा हुआ भंडार तब तक अप्राप्य कमिट बन जाता है जब तक कि कचरा संग्रहण उसकी छँटाई न कर दे। इसे git fsck --unreachable से ढूंढें, इसका निरीक्षण git stash show -p <sha> से करें, फिर git stash apply <sha> या git branch <name> <sha> से करें।
मैं Git में हटाई गई शाखा को कैसे पुनर्प्राप्त करूं?
शाखा की अंतिम कमिट को git reflog में ढूंढें (या जब आपने इसे हटा दिया था तो "था <शा>" संदेश Git प्रिंट हो गया था), फिर शाखा को वापस रखने के लिए git branch <name> <sha> चलाएँ।
डैंगलिंग कमिट क्या है?
एक कमिट जिसकी ओर कोई शाखा, टैग, स्टैश या रीफ्लॉग प्रविष्टि इंगित नहीं करती। git fsck --lost-found उन्हें सूचीबद्ध करता है और उन्हें .git/lost-found/commit/ में कॉपी करता है ताकि आप उनका निरीक्षण कर सकें।
क्या git gc खोए हुए कमिट को हटा देता है?
हां, एक बार जब वे समाप्ति सेटिंग्स से पुराने हो जाते हैं: डिफ़ॉल्ट रूप से रीफ्लॉग प्रविष्टि के बिना पहुंच योग्य वस्तुओं को दो सप्ताह के बाद काट दिया जाता है। जब तक आप अपना काम पूरा नहीं कर लेते, तब तक git gc और git prune से बचें।
क्या मैं उन परिवर्तनों को पुनः प्राप्त कर सकता हूँ जो मैंने कभी नहीं किए?
गिट से नहीं. ऑब्जेक्ट डेटाबेस में केवल कमिट या संग्रहीत कार्य ही होता है। आपके संपादक का स्थानीय इतिहास या बैकअप देखने लायक जगह है।
क्या GitTree का लॉस्ट एंड फाउंड मुफ़्त है?
हाँ। खोया और पाया GitTree की निःशुल्क योजना का हिस्सा है। यह केवल आपके स्थानीय भंडार को पढ़ता है, और यह जो एकमात्र परिवर्तन करता है वह पुनर्प्राप्ति शाखा है जिसे आप मांगते हैं।
सूत्र
अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 5 नवंबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।