git - with - आकस्मिक रूप से मास्टर के पास वापस आ गया, असामान्य परिवर्तन खो गया




integrate git bash with visual studio code (4)

मैंने मास्टर पर काम करने में एक बड़ी गलती (सोमवार की सुबह) काम करने में कामयाब रहा है, नई शाखा बनाने के लिए भूल गए हैं, फाइलों में बदलाव किए हैं, फिर अनजाने में मास्टर को वापस कर दिया, सभी अपडेट खो दिए। मैंने अद्यतन फाइलें नहीं की हैं।

क्या मैंने सभी अपडेट खो दिए हैं या क्या मैं उन्हें पुनर्प्राप्त कर सकता हूं?

मुझसे मत पूछें कि हर बार जब मैं इसके बारे में सोचता हूं तो मुझे चेहरे पर खुद को पेंच करना पड़ता है।


दो लंबे शॉट्स: कुछ आईडीई, जैसे डेल्फी, एक संपादक इतिहास रखें। आपके पास कुछ सहारा हो सकता है।
इसके बाद, यदि आपके पास MyDocuments फ़ोल्डर में स्थित आपकी स्थानीय कार्य निर्देशिका थी, तो इसे स्वचालित रूप से विंडोज होम सर्वर, कार्बोनाइट, मोज़िप्रो, आदि द्वारा समर्थित किया जा सकता है .. ये आमतौर पर 'इसे सेट करते हैं और इसे भूल जाते हैं'। शायद आप इसे भूल गए?


मैं एक ही स्थिति में फंस गया था।

--हार्ड रीसेट से पहले टर्मिनल में बदली गई फ़ाइलों की एक सूची थी, मेरे संपादक (सब्लिम 2, हालांकि कोई फर्क नहीं पड़ता) में चला गया, प्रत्येक फ़ाइल को खोला और एक बार cmd + z (पूर्ववत) मारा, यह प्रभावी रूप से परिवर्तनों को कम करता है हार्ड रीसेट द्वारा किया गया और मुझे अपने असामान्य परिवर्तन वापस मिल गया :)


यदि आपने आपके द्वारा किए गए परिवर्तनों का पालन, मंचन या छेड़छाड़ नहीं की है, तो आप उन परिवर्तनों को पुनर्प्राप्त करने का कोई तरीका नहीं हैं।

संपादित करें: खोए गए परिवर्तनों को पुनर्प्राप्त करना। मार्क लॉन्गएयर के सुझाव (टिप्पणी में) पर इसे जोड़ना। इसमें नीचे दिए गए उत्तर (*) से कुछ SO लिंक भी शामिल हैं, जिन्हें मैंने काफी जानकारीपूर्ण पाया।

  • यदि आपने कभी कुछ बदलाव किया है और उस प्रतिबद्धता को खो दिया है (जैसे एक अलग राज्य में काम करना), तो आप reflog का उपयोग करके प्रतिबद्ध हो सकते हैं। यह SO सवाल * देखें।

  • यदि आप अपना आखिरी चरण बदल गए हैं, तो आप इसे भी पुनर्प्राप्त कर सकते हैं। यह SO सवाल * देखें। (मैंने कभी इसका इस्तेमाल नहीं किया है या कोशिश की है)।

  • यदि आपने कोई बदलाव किया है, तो आप pop या apply करने से भी इसे पुनर्प्राप्त कर सकते हैं। (मुझे यकीन नहीं है कि पॉप / गिराए गए स्टैश भी पुनर्प्राप्त करने योग्य हैं जो प्रतिबद्ध नहीं थे)। आपको यह पुनर्प्राप्ति गिट में उपयोगी गिरावट मिल सकती है।

यदि कोई अन्य तरीका है जो कोई भी सुझाव दे सकता है, तो मैं उन्हें जोड़ने के लिए इस उत्तर को और संपादित कर दूंगा।


यहां महत्वपूर्ण सवाल यह है कि आपने फ़ाइलों में बदलाव करने के बाद क्या किया। यदि आपने एक ऐसी प्रतिबद्धता बनाई है जिसमें फाइलों की नई स्थिति शामिल है, तो आपको गिट रिफ्लॉग में हालिया प्रविष्टियों को देखकर उन्हें वापस लेना चाहिए, प्रतिबद्धता के SHA1sum को ढूंढना और उसके बाद git branch recovered <SHA1sum> साथ एक नई शाखा बनाना git branch recovered <SHA1sum> , या इसी तरह से git branch recovered <SHA1sum>इस जवाब में ऐसा करने का एक उदाहरण है।

यदि आपने उन्हें चरणबद्ध करने के लिए किसी भी फाइल पर git add है, तो आपको उन्हें वापस पाने में भी सक्षम होना चाहिए, लेकिन यह और भी काम है - जैकब वर्णन करता है कि इस जवाब में इसे कैसे किया जाए।

यदि आप खुद को एक साफ स्थिति देने के लिए git stash करना चाहते हैं, तो निश्चित रूप से आप इसे वापस प्राप्त कर सकते हैं क्योंकि आप किसी भी अन्य छेड़छाड़ करेंगे।

अन्यथा, मुझे डर है कि खबर अच्छी नहीं है।

मुझे आशा है कि यह पोस्ट-हाॉक को इंगित करने के लिए परेशान नहीं है, लेकिन master शाखा में वापस जाने के लिए, आपको किसी भी कमांड का उपयोग करने की आवश्यकता नहीं होनी चाहिए जो आपको डेटा खो सकती है - git checkout master ने आपको बताया होगा कि आप पहले से ही थे मास्टर शाखा पर, और किसी भी असामान्य परिवर्तन दिखाएं। (तर्कसंगत रूप से git reset --hard "हां, मेरा वास्तव में यह मतलब है" पुष्टि होनी चाहिए कि अगर असामान्य परिवर्तन हैं, तो कितनी बार लोग ^W मैं डेटा खो देता हूं।)






git