गेट रीसेट से पुनर्प्राप्त करें - भार?


457

क्या वर्किंग डायरेक्टरी से अनकम्यूटेड बदलावों को पुनर्प्राप्त करने का कोई तरीका है git reset --hard HEAD?


49
मैं अनब्लॉकिंग की सलाह दूंगा git reset। आपको उस आदेश की आवश्यकता नहीं है और यह खतरनाक है, इसलिए इसका उपयोग न करें। शाखा को पिछली ओर वापस करने के लिए या तो git rebase -iआप उस शाखा को छोड़ना चाहते हैं जो git checkout( या सिर को अलग नहीं करता है ) git branch -Mशाखा टिप को स्थानांतरित करने के लिए। पहले स्थानीय परिवर्तनों के साथ चलने से इंकार कर देगा और बाद में तभी चलेगा जब स्थानीय रूप से संशोधित फाइलें संशोधन के बीच भिन्न न हों।
Jan Hudec

11
@ मैं ऐसा नहीं मानता। रीसेट का उपयोग करने के लिए पूरी तरह से वैध कारण हैं।
स्पाकार्की 21

4
@ Spaaarky21: हां, हैं। लेकिन git reset --hard somewhereवास्तव में कुछ खतरनाक आदेशों में से एक है।
Jan Hudec

5
@ मैं सहमत हूँ लेकिन यह खतरनाक होने का मतलब यह नहीं है कि आपको इसका उपयोग नहीं करना चाहिए। बस पता है कि आप क्या कर रहे हैं और सावधान रहें। :)
स्पाकार्की 21

3
अंडर रीसेट करने से संबंधित नहीं है - रीसेट HEAD ~ 1 , क्योंकि यहां मूल पोस्टर अप्राप्त परिवर्तनों को पुनर्प्राप्त करने का प्रयास कर रहा है।

जवाबों:


474

आप सामान्य रूप से वापस नहीं किए गए परिवर्तन प्राप्त कर सकते हैं

पहले किए गए परिवर्तनों ( git add) का अनुक्रमणिका ऑब्जेक्ट से पुनर्प्राप्त करने योग्य होना चाहिए, इसलिए यदि आपने किया है, तो इससे git fsck --lost-foundसंबंधित ऑब्जेक्ट का पता लगाने के लिए उपयोग करें। (यह .git/lost-found/निर्देशिका को ऑब्जेक्ट्स लिखता है ; वहां से आप git show <filename>प्रत्येक फ़ाइल की सामग्री को देखने के लिए उपयोग कर सकते हैं ।)

यदि नहीं, तो यहां उत्तर होगा: अपने बैकअप को देखें। शायद आपका संपादक / IDE / tmp या C: \ TEMP और इस तरह की चीज़ों के तहत अस्थायी प्रतियां संग्रहीत करता है। [१]

git reset HEAD@{1}

यह पिछले HEAD को पुनर्स्थापित करेगा

[१] विम जैसे वैकल्पिक रूप से लगातार पूर्ववत भंडार, ग्रहण आईडीई स्थानीय इतिहास को संग्रहीत करता है ; ऐसी सुविधाएँ आपके ** को बचा सकती हैं


18
ग्रहण का स्थानीय इतिहास - और इसके अलावा, चूंकि कुछ बदलाव 6 दिनों से पुराने थे, इसलिए मेरा ग्रहण मशीन का स्थानीय इतिहास का बैकअप था! किसी कारण से git द्वारा प्रबंधित फ़ोल्डर के टाइम मशीन बैकअप में मेरे पिछले परिवर्तन नहीं थे।
क्रिश्चियनब्रोडबेक

2
आप एक गंभीरता से संकेत पर एक जीवन रक्षक हैं! TextWrangler के पास फ़ाइलों का बैकअप था। धन्यवाद
विवेक Sampara

6
IDE (IntelliJ) ने उन परिवर्तनों को स्थानीय रूप से संग्रहीत किया जो दिन बचाते थे। पारितोषिक के लिए धन्यवाद!
प्रोगोंपा

1
वाह यह आश्चर्यजनक है। यह तब भी काम करता है जब आपने कभी कमिटमेंट नहीं किया हो।
बोउडविज़न आसमन

2
एक्लिप्स में स्थानीय इतिहास (मेरे मामले में इन्टेलिज) मेरे दिन को बचाने के लिए अनचाहे बदलावों को दूर करता है, इन्टेलिज के लिए यहां डॉक्टर: blog.jetbrains.com/idea/2008/01/…
रिचर्ड

448

इस से उत्तर एसओ

$ git reflog show
93567ad HEAD@{0}: reset: moving to HEAD@{6}    
203e84e HEAD@{1}: reset: moving to HEAD@{1}    
9937a76 HEAD@{2}: reset: moving to HEAD@{2}
203e84e HEAD@{3}: checkout: moving from master to master
203e84e HEAD@{4}: reset: moving to HEAD~1
9937a76 HEAD@{5}: reset: moving to HEAD~1
d5bb59f HEAD@{6}: reset: moving to HEAD~1
9300f9d HEAD@{7}: commit: fix-bug

# said the commit to be recovered back is on 9300f9d (with commit message fix-bug)
$ git reset HEAD@{7}

आपको अपना दिन वापस मिल गया! :)


24
बस इस उत्तर को जोड़ने के लिए यह उन लोगों की मदद करेगा जिन्होंने वास्तव में उन परिवर्तनों को किया था जिन्हें हार्ड रीसेट के माध्यम से फेंक दिया गया था।
murki

9
महान - लेकिन मेरे मामले में फाइलें पूरी तरह से चली गईं। का उपयोग कर git checkout HEAD@{19}मुझे एक अलग राज्य में खो फ़ाइलों की जाँच करने की अनुमति दी। तब git checkout -b new-branch-nameउन्हें "संलग्न" स्थिति में रेपो में वापस जोड़ दिया जाता था।
नाइटऑवल 88

@ NightOwl888: यहाँ नौसिखिया और मुझे एक ही समस्या थी कि मेरी फाइलें अभी भी चली गई थीं। क्या आप अधिक विस्तार से बता सकते हैं कि आपने अपनी फ़ाइलों को "संलग्न" स्थिति में कैसे पुनर्प्राप्त किया है (या क्या आप बता सकते हैं कि वास्तव में इसका क्या मतलब है)? आपको बहुत - बहुत धन्यवाद!
18

3
@ user3385759 - गिट में, जब आप चेकआउट कमांड का उपयोग किसी ऐसी चीज पर करते हैं जो शाखा नहीं है, तो यह एक विशेष "अलग किए गए सिर" मोड में जाएगी। इसका मतलब है कि आप वास्तव में एक शाखा की ओर इशारा नहीं कर रहे हैं, लेकिन आप देख सकते हैं कि इकाई की स्थिति में क्या जांच की गई थी (इस मामले में एक रिफ्लॉग प्रविष्टि)। उस स्थिति से, आप इसे एक "वास्तविक" शाखा में बदल सकते हैं जिसका उपयोग करके आप फिर से वापस जा सकते हैं git checkout -b new-branch-name। Git को सरल शब्दों में समझाने के लिए Pragmatic Version Control पुस्तक का उपयोग करना अच्छा है।
नाइटऑवल 88 19

2
हाँ, नोमोमैकेमरोन और जेसी एडेलमैन ने क्या कहा। मैंने गलत तरीके से सोचा था कि रीसेट मेरे अंतिम प्रतिबद्ध पर रीसेट हो जाएगा। नहीं। इसने सब कुछ मिटा दिया। इस जवाब ने मुझे एक-दो दिन में मेरे काम को फिर से बनाने से बचा लिया।
वेटरनकोडर

308

मैं गलती से git reset --hardआज भी अपने रेपो पर चला गया, जबकि आज भी बहुत से बदलाव हुए हैं। इसे वापस पाने के लिए, मैं भागा git fsck --lost-found, जिसने लिखा था कि सभी अपरिवर्तित बूँदें <path to repo>/.git/lost-found/। चूँकि फाइलें अप्राप्त थीं, इसलिए मैंने उन्हें otherनिर्देशिका के भीतर पाया <path to repo>/.git/lost-found/। वहां से, मैं उपयोग किए जा रहे अप्रकाशित फ़ाइलों को देख सकता हूं, ब्लब्स को git show <filename>कॉपी कर सकता हूं और उनका नाम बदल सकता हूं।

नोट: यह केवल तभी काम करता है जब आप उन फ़ाइलों को जोड़ते हैं जिन्हें आप अनुक्रमणिका में सहेजना चाहते हैं (उपयोग करके git add .)। यदि फ़ाइलें अनुक्रमणिका में नहीं थीं, तो वे खो गई हैं।


4
मुझे कमिट में रेफरेंस वाली फाइलें मिलीं lost-found। लेकिन मैं तब git showसामग्री प्राप्त करने के लिए कर सकता था ।
मित्तर

6
बस किसी को भी समय बचाने के लिए#!/bin/bash cd PATH_TO_PROJECT/.git/lost-found/other FILES=* COUNTER = 0 for f in $FILES do echo "Processing $f file..." git show $f > "PATH_TO_RECOVERY_DIRECTORY/$COUNTER.m" let COUNTER=COUNTER+1 done
rwolst

209

हाँ, आप गिट में एक हार्ड रीसेट से प्राप्त कर सकते हैं

उपयोग:

git reflog

अपनी प्रतिबद्धता का पता लगाने के लिए। फिर उपयोग करें:

git reset --hard <commit-id-retrieved-using-reflog>

इस ट्रिक ने मेरे जीवन को एक दो बार बचाया।

आप यहाँ पर रीफ़्लॉग के दस्तावेज़ पा सकते हैं ।


9
अब तक, मुझे लगता है कि यह सबसे अच्छा और सबसे संक्षिप्त जवाब है। यह git reset --hardदूसरे का उपयोग करने से पुनर्प्राप्त करने के लिए काउंटर सहज ज्ञान युक्त लग सकता है, git reset --hardलेकिन यदि आप --hardस्विच का उपयोग नहीं करते हैं , तो आपको अपने कार्यक्षेत्र में प्रविष्टियों के साथ छोड़ दिया जाएगा जो आपके द्वारा पुनर्प्राप्त किए गए कार्य को प्रभावी ढंग से वापस कर देंगे।
रयान एच।

2
एक जादू की तरह काम करता है! पिछले जवाब ( stackoverflow.com/questions/5788037/recover-from-git-reset-hard/… ) ने मेरे लिए काम नहीं किया।
कोडमेक्स

3
यह उत्तर सही नहीं है। यह दृष्टिकोण केवल पहले किए गए परिवर्तनों को ठीक करता है । यह असम्बद्ध परिवर्तनों को पुनर्स्थापित करने में सक्षम नहीं होगा (जो इस बारे में प्रश्न है)।
ऐगारथ

2
यह समाधान मेरे लिए काम करता है। मैंने एक हार्ड रीसेट किया और फिर जब मैं उपयोग करता git logहूं तो मैंने कमिट की आईडी नहीं देखी। साथ git reflogमैं देख सकता आईडी प्रतिबद्ध
dboscanv

2
यह मेरे लिए काम करता है। धन्यवाद!!!!!!
रेड

60

जब मैं एक स्थानीय परियोजना पर काम कर रहा था, मैं इसे गिटहब में स्थानांतरित करना चाहता था और फिर एक नया भंडार बनाया। जब मैं .itignore के साथ इन सभी फाइलों को नई रिपॉजिटरी में जोड़ने की कोशिश कर रहा था, तो मैंने गलती से एक गलत फ़ाइल जोड़ दी और फिर इसे खाली करने की कोशिश की।

मैं भागा git reset --hard origin/master: पी

फिर मेरी सभी स्थानीय फ़ाइलें हटा दी गईं क्योंकि रेपो खाली था। मुझे लगा कि सब कुछ खत्म हो गया है।

इससे मेरी जान बच गई:

git reflog show
git reset HEAD@{1} 
git push 

आशा है कि यह एक और जीवन बचाता है।


मेरे लिए, यह था git reset HEAD@\{27\} , धन्यवाद!
4oby

1
मेरे पास रीसेट करने के लिए 7 कमिट हैं, मैं git reflog showजांच करने के लिए उपयोग करता हूं और उस पहले कमिट से मैं उपयोग करता हूंgit reset HEAD@{number}
विश्वास नाहर

38

यदि आप इंटेलीज जैसे कुछ का उपयोग करते हैं:

संदर्भ मेनू पर, स्थानीय इतिहास चुनें, और सबमेनू पर इतिहास दिखाएं पर क्लिक करें:

किसी प्रोजेक्ट या फ़ोल्डर के लिए स्थानीय इतिहास दृश्य आपको वह सब कुछ दिखाता है जो आपने पिछले कुछ दिनों के दौरान किया है। डायलॉग बॉक्स के निचले हिस्से के एक्शन कॉलम में, उस एक्शन को चुनें, जिसे आप वापस रोल करना चाहते हैं। [...] ऐसा करते हुए, संवाद बॉक्स का ऊपरी भाग बदले हुए फ़ाइलों के ट्री दृश्य दिखाता है। यदि आप केवल हटाए गए फ़ाइल को पुनर्स्थापित करना चाहते हैं, तब से किए गए अन्य परिवर्तनों की परवाह किए बिना, आप ट्री व्यू में फाइल लॉस्टटैक्स का चयन कर सकते हैं और रिवर्ट बटन पर क्लिक कर सकते हैं।

http://blog.jetbrains.com/idea/2008/01/using-local-history-to-restore-deleted-files/

इसने मेरी गांड को आग से बाहर निकाल दिया!


यह अब तक IntelliJ उपयोगकर्ताओं के लिए सबसे अच्छा जवाब है! बहुत बहुत धन्यवाद, यह पूरी तरह से काम किया। मैंने हर दूसरे समाधान की कोशिश की और उनमें से किसी ने भी अच्छा काम नहीं किया। git reflogकाम नहीं किया क्योंकि मैंने बदलाव नहीं किए। git fsck --lost-foundमंचन फ़ाइलों के लिए काम किया है, लेकिन उन सभी का मंचन नहीं किया गया। इंटेलीज के स्थानीय इतिहास ने मेरी बिना सहेजे फाइलों को पूरी तरह से पुनर्प्राप्त कर लिया, मैं इस सुविधा के लिए बहुत आभारी हूं
Denes Papp

30

मैंने अभी- git reset --hardअभी अपने सभी uncommitted परिवर्तन खो दिए हैं। सौभाग्य से, मैं एक संपादक (IntelliJ) का उपयोग करता हूं और मैं स्थानीय इतिहास से परिवर्तनों को पुनर्प्राप्त करने में सक्षम था। ग्रहण को आपको ऐसा करने की अनुमति देनी चाहिए।


19

परिभाषा के अनुसार, git reset --hardजीआईटी के लिए उन्हें पुनर्प्राप्त करने के लिए किसी भी तरह से बिना किसी बदलाव के फेंक दिया जाएगा (आपकी बैकअप प्रणाली मदद कर सकती है, लेकिन गिट नहीं)।

वास्तव में, बहुत कम मामले हैं जहां git reset --hardएक अच्छा विचार है। ज्यादातर मामलों में, एक ही काम करने के लिए एक सुरक्षित आदेश है:

  • यदि आप अपने अन-कम किए गए परिवर्तनों को फेंकना चाहते हैं, तो उपयोग करें git stash। यह इन परिवर्तनों का एक बैकअप रखेगा, जो आपके चलने पर कुछ समय बाद समाप्त हो जाएगा git gc। यदि आप 99.9% सुनिश्चित हैं कि आपको इन परिवर्तनों को वापस करने की आवश्यकता नहीं होगी, तो git stash0.1% मामले के लिए अभी भी आपका मित्र है। यदि आप 100% सुनिश्चित हैं, तो git stashअभी भी आपका मित्र है क्योंकि इन 100% में माप त्रुटि है; ;-)

  • यदि आप HEADइतिहास में अपनी और वर्तमान शाखा की नोक को स्थानांतरित करना चाहते हैं , तो git reset --keepआपका मित्र है। यह वही काम git reset --hardकरेगा, जो आपके स्थानीय परिवर्तनों को नहीं करेगा ।

  • यदि आप दोनों करना चाहते हैं, तो git stash && git reset --keepआपका दोस्त है।

अपनी उंगलियों का उपयोग न करना सिखाएं git reset --hard, यह एक दिन वापस भुगतान करेगा।


इसलिए यदि कोई ऐसा करता है git stash && git reset --hardजो किसी भी सामग्री को मिटा देगा तो क्या यह सही है?
jxramos

1
नहीं, git reset --hardस्टैश को त्यागना नहीं है। इस अर्थ में git stashएक प्रतिस्थापन git reset --hardहै कि यह आपके वर्कट्री से अनपेक्षित परिवर्तनों को हटा देता है, सिवाय इसके कि यह उन्हें स्थायी रूप से छोड़ने के बजाय सुरक्षित रखता है।
मैथ्यू मोय

या बस अपने परिवर्तनों को करने से पहले आप को रीसेट करें और वे अभी भी आपके स्थानीय रेपो में होंगे
ThaJay

11

यदि आप गलती से एक हार्ड रीसेट करते हैं, तो ऐसा करें,

git reflog show
git reset HEAD@{2} // i.e where HEAD used to be two moves ago - may be different for your case

यह मान HEAD@{2}लेना कि आप वापस जाने की इच्छा रखते हैं


अगर आपने PowerShell पर ऐसा किया है तो मेरे लिए यह सही काम है, इसे इस तरह से लिखना सुनिश्चित करें कि यह git रीसेट 'HEAD @ {2}' अन्यथा
शब्‍दावली

10

यह वही है जो मैं आमतौर पर करता हूं अगर मैं कुछ बदलाव खो देता हूं।

git reflog
git checkout <commit id> // now you are in where you want but you cannot push from detached branch to master
manually copy and paste changes from detached branch to master or working branch
git reset --hard HEAD // if needed
git add ... > git commit ... > git push ...

पॉइंटर को अपने पिछले कमिट्स में ले जाने के लिए git reset --soft dadada


8

सूचना खो जाती है।

चूँकि आपने प्रतिबद्ध नहीं किया, इसलिए आपके .it ने यह जानकारी कभी संग्रहीत नहीं की। तो, मूल रूप से gitआप के लिए यह ठीक नहीं हो सकता।

लेकिन, यदि आपने अभी-अभी किया है git diff, तो एक तरीका है कि आप टर्मिनल आउटपुट का उपयोग करके निम्नलिखित 3 सरल चरणों को प्राप्त कर सकते हैं।

  1. अपने टर्मिनल को स्क्रॉल करें और o / p के लिए देखें git diff। एक फ़ाइल में ओ / पी सहेजें को diff.patch कहा जाता है
  2. सभी 7 स्थानों और 8 स्थानों को टैब (\ t) वर्ण से खोजें और बदलें और परिवर्तनों को सहेजें।
  3. अपने गिट भंडार में जाओ। Diff.patch ( patch -p1 < diff.patch) लागू करें

आप बच गए! :)

नोट: जब आप डेटा को टर्मिनल से किसी फ़ाइल में कॉपी कर रहे हैं, तो सावधान रहें और स्पष्ट रूप से देखें कि डेटा निरंतर आउटपुट है और इसमें कोई अनावश्यक डेटा (ऊपर और नीचे तीर दबाने के कारण) नहीं है। अन्यथा आप इसे गड़बड़ कर सकते हैं।


7

मैं एक ही मुद्दे में भाग गया और मैं लगभग पागल हो रहा था .... शुरू में मैंने परियोजना को प्रतिबद्ध किया और विलय कर दिया .. बाद में जब मैंने दौड़ने की कोशिश की तो मुझे git push --set-upstream origin master यह त्रुटि मिल रही थी

  fatal: refusing to merge unrelated histories

इसलिए मैं भाग गया git reset --hard HEADऔर इसने 3 सप्ताह की परियोजना को हटा दिया लेकिन नीचे दिए गए ये कुछ आदेश दिन बचाते हैं:

git reset HEAD@{1}         //this command unstage changes after reset
git fsck --lost-found      //I got the dangling commit fc3b6bee2bca5d8a7e16b6adaca6a76e620eca4b
git show <dangling commit something like-> fc3b6bee2bca5d8a7e16b6adaca6a76e620eca4b>
git rebase fc3b6bee2bca5d8a7e16b6adaca6a76e620eca4b

उम्मीद है की यह मदद करेगा


6

आप एक करने के बाद वापस कमिट कर सकते हैं reset --hard HEAD

git reflogके इतिहास की जाँच करने के लिए " " का उपयोग करेंHEADशाखा में ।

आपको यहाँ पर अपना कमिटमेंट और उसकी आईडी दिखाई देगी।

ए करें

git reset {commit Id of the commit you want to bring back}

5

यदि आप सौभाग्य से उसी फ़ाइल को किसी अन्य संपादक (जैसे उदा। पाठ) पर खोलते हैं, तो उन पर ctrl-z का प्रयास करें। यह सिर्फ मुझे बचाया ..


3

मुझे यह पता चला कि git reset --hard <commit>जीआईटी के इतिहास से हटने से पहले किसी भी तरह की अनकही फाइलें हालाँकि, मैं भाग्यशाली था कि मैंने अपने कोड संपादक सत्र को पूरे समय खुले रखा था, जब मैं अपने बालों को बाहर निकाल रहा था, तो मुझे पता चला कि control + zप्रभावित फ़ाइलों में से प्रत्येक में एक साधारण फ़ाइल के राज्य को वापस Git से पहले संस्करण में वापस कर दिया गया है अनिवार्य रूप से सब कुछ रीसेट करें जो मैंने विशेष रूप से नहीं पूछा।Hooray!!


3

यदि आप नीचे दिए गए कोड का उपयोग करने का प्रयास कर रहे हैं:

git reflog show
# head to recover to
git reset HEAD@{1} 

और किसी कारण से हो रही हैं:

त्रुटि: अज्ञात स्विच `e '

फिर HEAD@{1}उद्धरणों में लपेटने का प्रयास करें

git reset 'HEAD@{1}'

3
 git reset HEAD@{4}

4 4 चरणों से पहले परिवर्तन है। यदि आप एक सही कदम चुनते हैं, तो यह उन फ़ाइलों की सूची दिखा सकता है जिन्हें आपने हार्ड से हटाया था। फिर करो:

$ git reflog show

यह आपको स्थानीय प्रतिबद्ध इतिहास दिखाने जा रहा है जो हमने पहले ही बनाया है। अब करते हैं:

$ git reset --hard 8c4d112

8c4d112 एक कोड है जिसे आप अपनी हार्ड रीसेट करना चाहते हैं। अधिक जानकारी प्राप्त करने के लिए आइए https://www.theserverside.com/video/How-to-use-the-git-reset-hard-command-to-change-a-commit-history पर देखें


बहुत बहुत धन्यवाद @ मनमोहन, इसने मुझे बचाया। मैं अपने स्रोत फ़ाइलों को पहले नहीं देख सकता था, लेकिन उपरोक्त चरणों का पालन करके मैं अपनी सभी स्रोत फ़ाइलों को पुनर्प्राप्त करने में सक्षम रहा हूं।
गौरव बंसल

2

सही उत्तर। ठीक है, अब मुझे गिट पसंद है। :-) यहाँ एक सरल नुस्खा है।

git log HEAD@{2}
git reset --hard  HEAD@{2}

जहाँ "2" आपके परिवर्तनों को करने के लिए पीछे की संख्या है। मेरे मामले में, कुछ बिल्ड मुद्दे पर डिबग करने में मदद करने के लिए सहयोगी और बॉस द्वारा बाधित; इसलिए, दो बार एक रीसेट किया; इसलिए, HEAD और HEAD @ {1} ओवर-राइट थे। वाह, हमारी कड़ी मेहनत का नुकसान हुआ होगा।


2

मैंने किया git reset --hard गलती से गलत प्रोजेक्ट पर काम किया (मुझे पता है ...)। मैंने सिर्फ एक फ़ाइल पर काम किया था और यह कमांड चलाने के दौरान और उसके बाद भी खुला था।

भले ही मैंने प्रतिबद्ध नहीं किया था, मैं पुरानी फ़ाइल को सरल के साथ पुनर्प्राप्त करने में सक्षम था COMMAND + Z


0

इस SO से संदर्भ उत्तर,

गिट रिफ्लोग शो चलाने के बाद आप 9300f9d पर कमिट करना चाहते हैं

चलाने के बाद git 9300f9d रीसेट करें

आप स्थिति बदल सकते हैं, और फिर आपको अपने परिवर्तनों को पुनर्स्थापित करने के लिए अपनी फ़ाइल (चेक) की आवश्यकता हो सकती है

git checkout - फ़ाइलपथ / नाम


0

यदि आप Netbeans पर विकास कर रहे हैं, तो फ़ाइल टैब और फ़ाइल संपादन क्षेत्र के बीच देखें। एक "स्रोत" और "इतिहास" है। "इतिहास" पर आपको संस्करण नियंत्रण (git / अन्य) का उपयोग करके किए गए परिवर्तन दिखाई देंगे, लेकिन स्थानीय रूप से किए गए परिवर्तन भी। इस मामले में, स्थानीय परिवर्तन आपको बचा सकते हैं।


0

( उपयोगकर्ताओं के सबसेट के लिए उपयुक्त उत्तर )

यदि आप (हाल के किसी भी) macOS पर हैं, और यहां तक ​​कि अगर आप अपने टाइम मशीन डिस्क से दूर हैं, तो OS ने स्थानीय स्नैपशॉट्स नामक घंटे के बैकअप को बचाया होगा ।

टाइम मशीन दर्ज करें और आपके द्वारा खोई गई फ़ाइल पर नेविगेट करें। OS आपसे तब पूछेगा:

The location to which you're restoring "file.ext" already contains an
item with the same name. Do you want to replace it with the one you're
restoring?

आपके द्वारा खोई गई फ़ाइल को पुनर्प्राप्त करने में सक्षम होना चाहिए।


0

यदि आपके पास एक ही कोड के साथ एक आईडीई खुला था, तो प्रत्येक व्यक्तिगत फ़ाइल पर ctrl + z करने का प्रयास करें जिसे आपने बदलाव किया है। इसने मुझे जीआईटी रीसेट --हार्ड करने के बाद मेरे अन-कम किए गए परिवर्तनों को पुनर्प्राप्त करने में मदद की।


-3

जब हम git रीसेट करते हैं - हार्ड और सभी स्थानीय अनमैक्ड परिवर्तन हटा दिए जाते हैं। परिवर्तनों को वापस प्राप्त करने के लिए - फ़ाइल पर IDE क्लिक में, स्थानीय इतिहास के साथ फ़ाइल की तुलना करें जो दिनांक के अनुसार परिवर्तनों को सूचीबद्ध करेगा और हम डेटा को पुनर्प्राप्त कर सकते हैं। आपका दिन बच गया!


1
यह उत्तर दो पहले वाले दोहराता है।
isherwood
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.